PNG  IHDRQgAMA a cHRMz&u0`:pQ<bKGDgmIDATxwUﹻ& ^CX(J I@ "% (** BX +*i"]j(IH{~R)[~>h{}gy)I$Ij .I$I$ʊy@}x.: $I$Ii}VZPC)I$IF ^0ʐJ$I$Q^}{"r=OzI$gRZeC.IOvH eKX $IMpxsk.쒷/&r[޳<v| .I~)@$updYRa$I |M.e JaֶpSYR6j>h%IRز if&uJ)M$I vLi=H;7UJ,],X$I1AҒJ$ XY XzI@GNҥRT)E@;]K*Mw;#5_wOn~\ DC&$(A5 RRFkvIR}l!RytRl;~^ǷJj اy뷦BZJr&ӥ8Pjw~vnv X^(I;4R=P[3]J,]ȏ~:3?[ a&e)`e*P[4]T=Cq6R[ ~ޤrXR Հg(t_HZ-Hg M$ãmL5R uk*`%C-E6/%[t X.{8P9Z.vkXŐKjgKZHg(aK9ڦmKjѺm_ \#$5,)-  61eJ,5m| r'= &ڡd%-]J on Xm|{ RҞe $eڧY XYrԮ-a7RK6h>n$5AVڴi*ֆK)mѦtmr1p| q:흺,)Oi*ֺK)ܬ֦K-5r3>0ԔHjJئEZj,%re~/z%jVMڸmrt)3]J,T K֦OvԒgii*bKiNO~%PW0=dii2tJ9Jݕ{7"I P9JKTbu,%r"6RKU}Ij2HKZXJ,妝 XYrP ެ24c%i^IK|.H,%rb:XRl1X4Pe/`x&P8Pj28Mzsx2r\zRPz4J}yP[g=L) .Q[6RjWgp FIH*-`IMRaK9TXcq*I y[jE>cw%gLRԕiFCj-ďa`#e~I j,%r,)?[gp FI˨mnWX#>mʔ XA DZf9,nKҲzIZXJ,L#kiPz4JZF,I,`61%2s $,VOϚ2/UFJfy7K> X+6 STXIeJILzMfKm LRaK9%|4p9LwJI!`NsiazĔ)%- XMq>pk$-$Q2x#N ؎-QR}ᶦHZډ)J,l#i@yn3LN`;nڔ XuX5pF)m|^0(>BHF9(cզEerJI rg7 4I@z0\JIi䵙RR0s;$s6eJ,`n 䂦0a)S)A 1eJ,堌#635RIgpNHuTH_SԕqVe ` &S)>p;S$魁eKIuX`I4춒o}`m$1":PI<[v9^\pTJjriRŭ P{#{R2,`)e-`mgj~1ϣLKam7&U\j/3mJ,`F;M'䱀 .KR#)yhTq;pcK9(q!w?uRR,n.yw*UXj#\]ɱ(qv2=RqfB#iJmmL<]Y͙#$5 uTU7ӦXR+q,`I}qL'`6Kͷ6r,]0S$- [RKR3oiRE|nӦXR.(i:LDLTJjY%o:)6rxzҒqTJjh㞦I.$YR.ʼnGZ\ֿf:%55 I˼!6dKxm4E"mG_ s? .e*?LRfK9%q#uh$)i3ULRfK9yxm܌bj84$i1U^@Wbm4uJ,ҪA>_Ij?1v32[gLRD96oTaR׿N7%L2 NT,`)7&ƝL*꽙yp_$M2#AS,`)7$rkTA29_Iye"|/0t)$n XT2`YJ;6Jx".e<`$) PI$5V4]29SRI>~=@j]lp2`K9Jaai^" Ԋ29ORI%:XV5]JmN9]H;1UC39NI%Xe78t)a;Oi Ҙ>Xt"~G>_mn:%|~ޅ_+]$o)@ǀ{hgN;IK6G&rp)T2i୦KJuv*T=TOSV>(~D>dm,I*Ɛ:R#ۙNI%D>G.n$o;+#RR!.eU˽TRI28t)1LWϚ>IJa3oFbu&:tJ*(F7y0ZR ^p'Ii L24x| XRI%ۄ>S1]Jy[zL$adB7.eh4%%누>WETf+3IR:I3Xה)3אOۦSRO'ٺ)S}"qOr[B7ϙ.edG)^ETR"RtRݜh0}LFVӦDB^k_JDj\=LS(Iv─aTeZ%eUAM-0;~˃@i|l @S4y72>sX-vA}ϛBI!ݎߨWl*)3{'Y|iSlEڻ(5KtSI$Uv02,~ԩ~x;P4ցCrO%tyn425:KMlD ^4JRxSهF_}شJTS6uj+ﷸk$eZO%G*^V2u3EMj3k%)okI]dT)URKDS 7~m@TJR~荪fT"֛L \sM -0T KfJz+nإKr L&j()[E&I ߴ>e FW_kJR|!O:5/2跌3T-'|zX ryp0JS ~^F>-2< `*%ZFP)bSn"L :)+pʷf(pO3TMW$~>@~ū:TAIsV1}S2<%ޟM?@iT ,Eūoz%i~g|`wS(]oȤ8)$ ntu`өe`6yPl IzMI{ʣzʨ )IZ2= ld:5+請M$-ї;U>_gsY$ÁN5WzWfIZ)-yuXIfp~S*IZdt;t>KūKR|$#LcԀ+2\;kJ`]YǔM1B)UbG"IRߊ<xܾӔJ0Z='Y嵤 Leveg)$znV-º^3Ւof#0Tfk^Zs[*I꯳3{)ˬW4Ւ4 OdpbZRS|*I 55#"&-IvT&/윚Ye:i$ 9{LkuRe[I~_\ؠ%>GL$iY8 9ܕ"S`kS.IlC;Ҏ4x&>u_0JLr<J2(^$5L s=MgV ~,Iju> 7r2)^=G$1:3G< `J3~&IR% 6Tx/rIj3O< ʔ&#f_yXJiގNSz; Tx(i8%#4 ~AS+IjerIUrIj362v885+IjAhK__5X%nV%Iͳ-y|7XV2v4fzo_68"S/I-qbf; LkF)KSM$ Ms>K WNV}^`-큧32ŒVؙGdu,^^m%6~Nn&͓3ŒVZMsRpfEW%IwdǀLm[7W&bIRL@Q|)* i ImsIMmKmyV`i$G+R 0tV'!V)֏28vU7͒vHꦼtxꗞT ;S}7Mf+fIRHNZUkUx5SAJㄌ9MqμAIRi|j5)o*^'<$TwI1hEU^c_j?Е$%d`z cyf,XO IJnTgA UXRD }{H}^S,P5V2\Xx`pZ|Yk:$e ~ @nWL.j+ϝYb퇪bZ BVu)u/IJ_ 1[p.p60bC >|X91P:N\!5qUB}5a5ja `ubcVxYt1N0Zzl4]7­gKj]?4ϻ *[bg$)+À*x쳀ogO$~,5 زUS9 lq3+5mgw@np1sso Ӻ=|N6 /g(Wv7U;zωM=wk,0uTg_`_P`uz?2yI!b`kĸSo+Qx%!\οe|އԁKS-s6pu_(ֿ$i++T8=eY; צP+phxWQv*|p1. ά. XRkIQYP,drZ | B%wP|S5`~́@i޾ E;Չaw{o'Q?%iL{u D?N1BD!owPHReFZ* k_-~{E9b-~P`fE{AܶBJAFO wx6Rox5 K5=WwehS8 (JClJ~ p+Fi;ŗo+:bD#g(C"wA^ r.F8L;dzdIHUX݆ϞXg )IFqem%I4dj&ppT{'{HOx( Rk6^C٫O.)3:s(۳(Z?~ٻ89zmT"PLtw䥈5&b<8GZ-Y&K?e8,`I6e(֍xb83 `rzXj)F=l($Ij 2*(F?h(/9ik:I`m#p3MgLaKjc/U#n5S# m(^)=y=đx8ŬI[U]~SцA4p$-F i(R,7Cx;X=cI>{Km\ o(Tv2vx2qiiDJN,Ҏ!1f 5quBj1!8 rDFd(!WQl,gSkL1Bxg''՞^ǘ;pQ P(c_ IRujg(Wz bs#P­rz> k c&nB=q+ؔXn#r5)co*Ũ+G?7< |PQӣ'G`uOd>%Mctz# Ԫڞ&7CaQ~N'-P.W`Oedp03C!IZcIAMPUۀ5J<\u~+{9(FbbyAeBhOSܳ1 bÈT#ŠyDžs,`5}DC-`̞%r&ڙa87QWWp6e7 Rϫ/oY ꇅ Nܶըtc!LA T7V4Jsū I-0Pxz7QNF_iZgúWkG83 0eWr9 X]㾮݁#Jˢ C}0=3ݱtBi]_ &{{[/o[~ \q鯜00٩|cD3=4B_b RYb$óBRsf&lLX#M*C_L܄:gx)WΘsGSbuL rF$9';\4Ɍq'n[%p.Q`u hNb`eCQyQ|l_C>Lb꟟3hSb #xNxSs^ 88|Mz)}:](vbۢamŖ࿥ 0)Q7@0=?^k(*J}3ibkFn HjB׻NO z x}7p 0tfDX.lwgȔhԾŲ }6g E |LkLZteu+=q\Iv0쮑)QٵpH8/2?Σo>Jvppho~f>%bMM}\//":PTc(v9v!gոQ )UfVG+! 35{=x\2+ki,y$~A1iC6#)vC5^>+gǵ@1Hy٪7u;p psϰu/S <aʸGu'tD1ԝI<pg|6j'p:tպhX{o(7v],*}6a_ wXRk,O]Lܳ~Vo45rp"N5k;m{rZbΦ${#)`(Ŵg,;j%6j.pyYT?}-kBDc3qA`NWQū20/^AZW%NQ MI.X#P#,^Ebc&?XR tAV|Y.1!؅⨉ccww>ivl(JT~ u`ٵDm q)+Ri x/x8cyFO!/*!/&,7<.N,YDŽ&ܑQF1Bz)FPʛ?5d 6`kQձ λc؎%582Y&nD_$Je4>a?! ͨ|ȎWZSsv8 j(I&yj Jb5m?HWp=g}G3#|I,5v珿] H~R3@B[☉9Ox~oMy=J;xUVoj bUsl_35t-(ՃɼRB7U!qc+x4H_Qo֮$[GO<4`&č\GOc[.[*Af%mG/ ňM/r W/Nw~B1U3J?P&Y )`ѓZ1p]^l“W#)lWZilUQu`-m|xĐ,_ƪ|9i:_{*(3Gѧ}UoD+>m_?VPۅ15&}2|/pIOʵ> GZ9cmíتmnz)yߐbD >e}:) r|@R5qVSA10C%E_'^8cR7O;6[eKePGϦX7jb}OTGO^jn*媓7nGMC t,k31Rb (vyܴʭ!iTh8~ZYZp(qsRL ?b}cŨʊGO^!rPJO15MJ[c&~Z`"ѓޔH1C&^|Ш|rʼ,AwĴ?b5)tLU)F| &g٣O]oqSUjy(x<Ϳ3 .FSkoYg2 \_#wj{u'rQ>o;%n|F*O_L"e9umDds?.fuuQbIWz |4\0 sb;OvxOSs; G%T4gFRurj(֍ڑb uԖKDu1MK{1^ q; C=6\8FR艇!%\YÔU| 88m)֓NcLve C6z;o&X x59:q61Z(T7>C?gcļxѐ Z oo-08jہ x,`' ҔOcRlf~`jj".Nv+sM_]Zk g( UOPyεx%pUh2(@il0ݽQXxppx-NS( WO+轾 nFߢ3M<;z)FBZjciu/QoF 7R¥ ZFLF~#ȣߨ^<쩡ݛкvџ))ME>ώx4m#!-m!L;vv#~Y[đKmx9.[,UFS CVkZ +ߟrY٧IZd/ioi$%͝ب_ֶX3ܫhNU ZZgk=]=bbJS[wjU()*I =ώ:}-蹞lUj:1}MWm=̛ _ ¾,8{__m{_PVK^n3esw5ӫh#$-q=A̟> ,^I}P^J$qY~Q[ Xq9{#&T.^GVj__RKpn,b=`żY@^՝;z{paVKkQXj/)y TIc&F;FBG7wg ZZDG!x r_tƢ!}i/V=M/#nB8 XxЫ ^@CR<{䤭YCN)eKOSƟa $&g[i3.C6xrOc8TI;o hH6P&L{@q6[ Gzp^71j(l`J}]e6X☉#͕ ׈$AB1Vjh㭦IRsqFBjwQ_7Xk>y"N=MB0 ,C #o6MRc0|$)ف"1!ixY<B9mx `,tA>)5ػQ?jQ?cn>YZe Tisvh# GMމȇp:ԴVuږ8ɼH]C.5C!UV;F`mbBk LTMvPʍϤj?ԯ/Qr1NB`9s"s TYsz &9S%U԰> {<ؿSMxB|H\3@!U| k']$U+> |HHMLޢ?V9iD!-@x TIî%6Z*9X@HMW#?nN ,oe6?tQwڱ.]-y':mW0#!J82qFjH -`ѓ&M0u Uγmxϵ^-_\])@0Rt.8/?ٰCY]x}=sD3ojަЫNuS%U}ԤwHH>ڗjܷ_3gN q7[q2la*ArǓԖ+p8/RGM ]jacd(JhWko6ڎbj]i5Bj3+3!\j1UZLsLTv8HHmup<>gKMJj0@H%,W΃7R) ">c, xixј^ aܖ>H[i.UIHc U1=yW\=S*GR~)AF=`&2h`DzT󑓶J+?W+}C%P:|0H܆}-<;OC[~o.$~i}~HQ TvXΈr=b}$vizL4:ȰT|4~*!oXQR6Lk+#t/g lԁߖ[Jڶ_N$k*". xsxX7jRVbAAʯKҎU3)zSNN _'s?f)6X!%ssAkʱ>qƷb hg %n ~p1REGMHH=BJiy[<5 ǁJҖgKR*倳e~HUy)Ag,K)`Vw6bRR:qL#\rclK/$sh*$ 6덤 KԖc 3Z9=Ɣ=o>X Ώ"1 )a`SJJ6k(<c e{%kϊP+SL'TcMJWRm ŏ"w)qc ef꒵i?b7b('"2r%~HUS1\<(`1Wx9=8HY9m:X18bgD1u ~|H;K-Uep,, C1 RV.MR5άh,tWO8WC$ XRVsQS]3GJ|12 [vM :k#~tH30Rf-HYݺ-`I9%lIDTm\ S{]9gOڒMNCV\G*2JRŨ;Rҏ^ڽ̱mq1Eu?To3I)y^#jJw^Ńj^vvlB_⋌P4x>0$c>K†Aļ9s_VjTt0l#m>E-,,x,-W)سo&96RE XR.6bXw+)GAEvL)͞K4$p=Ũi_ѱOjb HY/+@θH9޼]Nԥ%n{ &zjT? Ty) s^ULlb,PiTf^<À] 62R^V7)S!nllS6~͝V}-=%* ʻ>G DnK<y&>LPy7'r=Hj 9V`[c"*^8HpcO8bnU`4JȪAƋ#1_\ XϘHPRgik(~G~0DAA_2p|J묭a2\NCr]M_0 ^T%e#vD^%xy-n}-E\3aS%yN!r_{ )sAw ڼp1pEAk~v<:`'ӭ^5 ArXOI驻T (dk)_\ PuA*BY]yB"l\ey hH*tbK)3 IKZ򹞋XjN n *n>k]X_d!ryBH ]*R 0(#'7 %es9??ښFC,ՁQPjARJ\Ρw K#jahgw;2$l*) %Xq5!U᢯6Re] |0[__64ch&_}iL8KEgҎ7 M/\`|.p,~`a=BR?xܐrQ8K XR2M8f ?`sgWS%" Ԉ 7R%$ N}?QL1|-эټwIZ%pvL3Hk>,ImgW7{E xPHx73RA @RS CC !\ȟ5IXR^ZxHл$Q[ŝ40 (>+ _C >BRt<,TrT {O/H+˟Pl6 I B)/VC<6a2~(XwV4gnXR ϱ5ǀHٻ?tw똤Eyxp{#WK qG%5],(0ӈH HZ])ג=K1j&G(FbM@)%I` XRg ʔ KZG(vP,<`[ Kn^ SJRsAʠ5xՅF`0&RbV tx:EaUE/{fi2;.IAwW8/tTxAGOoN?G}l L(n`Zv?pB8K_gI+ܗ #i?ޙ.) p$utc ~DžfՈEo3l/)I-U?aԅ^jxArA ΧX}DmZ@QLےbTXGd.^|xKHR{|ΕW_h] IJ`[G9{).y) 0X YA1]qp?p_k+J*Y@HI>^?gt.06Rn ,` ?);p pSF9ZXLBJPWjgQ|&)7! HjQt<| ؅W5 x W HIzYoVMGP Hjn`+\(dNW)F+IrS[|/a`K|ͻ0Hj{R,Q=\ (F}\WR)AgSG`IsnAR=|8$}G(vC$)s FBJ?]_u XRvύ6z ŨG[36-T9HzpW̞ú Xg큽=7CufzI$)ki^qk-) 0H*N` QZkk]/tnnsI^Gu't=7$ Z;{8^jB% IItRQS7[ϭ3 $_OQJ`7!]W"W,)Iy W AJA;KWG`IY{8k$I$^%9.^(`N|LJ%@$I}ֽp=FB*xN=gI?Q{٥4B)mw $Igc~dZ@G9K X?7)aK%݅K$IZ-`IpC U6$I\0>!9k} Xa IIS0H$I H ?1R.Чj:4~Rw@p$IrA*u}WjWFPJ$I➓/6#! LӾ+ X36x8J |+L;v$Io4301R20M I$-E}@,pS^ޟR[/s¹'0H$IKyfŸfVOπFT*a$I>He~VY/3R/)>d$I>28`Cjw,n@FU*9ttf$I~<;=/4RD~@ X-ѕzἱI$: ԍR a@b X{+Qxuq$IЛzo /~3\8ڒ4BN7$IҀj V]n18H$IYFBj3̵̚ja pp $Is/3R Ӻ-Yj+L;.0ŔI$Av? #!5"aʄj}UKmɽH$IjCYs?h$IDl843.v}m7UiI=&=0Lg0$I4: embe` eQbm0u? $IT!Sƍ'-sv)s#C0:XB2a w I$zbww{."pPzO =Ɔ\[ o($Iaw]`E).Kvi:L*#gР7[$IyGPI=@R 4yR~̮´cg I$I/<tPͽ hDgo 94Z^k盇΄8I56^W$I^0̜N?4*H`237}g+hxoq)SJ@p|` $I%>-hO0eO>\ԣNߌZD6R=K ~n($I$y3D>o4b#px2$yڪtzW~a $I~?x'BwwpH$IZݑnC㧄Pc_9sO gwJ=l1:mKB>Ab<4Lp$Ib o1ZQ@85b̍ S'F,Fe,^I$IjEdù{l4 8Ys_s Z8.x m"+{~?q,Z D!I$ϻ'|XhB)=…']M>5 rgotԎ 獽PH$IjIPhh)n#cÔqA'ug5qwU&rF|1E%I$%]!'3AFD/;Ck_`9 v!ٴtPV;x`'*bQa w I$Ix5 FC3D_~A_#O݆DvV?<qw+I$I{=Z8".#RIYyjǪ=fDl9%M,a8$I$Ywi[7ݍFe$s1ՋBVA?`]#!oz4zjLJo8$I$%@3jAa4(o ;p,,dya=F9ً[LSPH$IJYЉ+3> 5"39aZ<ñh!{TpBGkj}Sp $IlvF.F$I z< '\K*qq.f<2Y!S"-\I$IYwčjF$ w9 \ߪB.1v!Ʊ?+r:^!I$BϹB H"B;L'G[ 4U#5>੐)|#o0aڱ$I>}k&1`U#V?YsV x>{t1[I~D&(I$I/{H0fw"q"y%4 IXyE~M3 8XψL}qE$I[> nD?~sf ]o΁ cT6"?'_Ἣ $I>~.f|'!N?⟩0G KkXZE]ޡ;/&?k OۘH$IRۀwXӨ<7@PnS04aӶp.:@\IWQJ6sS%I$e5ڑv`3:x';wq_vpgHyXZ 3gЂ7{{EuԹn±}$I$8t;b|591nءQ"P6O5i }iR̈́%Q̄p!I䮢]O{H$IRϻ9s֧ a=`- aB\X0"+5"C1Hb?߮3x3&gşggl_hZ^,`5?ߎvĸ%̀M!OZC2#0x LJ0 Gw$I$I}<{Eb+y;iI,`ܚF:5ܛA8-O-|8K7s|#Z8a&><a&/VtbtLʌI$I$I$I$I$I$IRjDD%tEXtdate:create2022-05-31T04:40:26+00:00!Î%tEXtdate:modify2022-05-31T04:40:26+00:00|{2IENDB`Mini Shell

HOME


Mini Shell 1.0
DIR:/home/htlwork.com/www/dev/pricelow/setup/performance-toolkit/
Upload File :
Current File : /home/htlwork.com/www/dev/pricelow/setup/performance-toolkit/benchmark.jmx
<?xml version="1.0"?>
<!--
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<jmeterTestPlan version="1.2" properties="3.1" jmeter="3.1 r1770033">
  <hashTree>
    <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Benchmark" enabled="true">
      <stringProp name="TestPlan.comments"></stringProp>
      <boolProp name="TestPlan.functional_mode">false</boolProp>
      <boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
      <stringProp name="TestPlan.user_define_classpath"></stringProp>
      <elementProp name="TestPlan.user_defined_variables" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="host" elementType="Argument">
            <stringProp name="Argument.name">host</stringProp>
            <stringProp name="Argument.value">${__P(host,localhost)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="base_path" elementType="Argument">
            <stringProp name="Argument.name">base_path</stringProp>
            <stringProp name="Argument.value">${__P(base_path,/)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="files_folder" elementType="Argument">
            <stringProp name="Argument.name">files_folder</stringProp>
            <stringProp name="Argument.value">${__P(files_folder,./files/)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="request_protocol" elementType="Argument">
            <stringProp name="Argument.name">request_protocol</stringProp>
            <stringProp name="Argument.value">${__P(request_protocol,http)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphql_port_number" elementType="Argument">
            <stringProp name="Argument.name">graphql_port_number</stringProp>
            <stringProp name="Argument.value">${__P(graphql_port_number,)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="admin_password" elementType="Argument">
            <stringProp name="Argument.name">admin_password</stringProp>
            <stringProp name="Argument.value">${__P(admin_password,)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="admin_path" elementType="Argument">
            <stringProp name="Argument.name">admin_path</stringProp>
            <stringProp name="Argument.value">${__P(admin_path,admin)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="admin_user" elementType="Argument">
            <stringProp name="Argument.name">admin_user</stringProp>
            <stringProp name="Argument.value">${__P(admin_user,admin)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cache_hits_percentage" elementType="Argument">
            <stringProp name="Argument.name">cache_hits_percentage</stringProp>
            <stringProp name="Argument.value">${__P(cache_hits_percentage,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="seedForRandom" elementType="Argument">
            <stringProp name="Argument.name">seedForRandom</stringProp>
            <stringProp name="Argument.value">${__P(seedForRandom,1)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="loops" elementType="Argument">
            <stringProp name="Argument.name">loops</stringProp>
            <stringProp name="Argument.value">${__P(loops,1)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="frontendPoolUsers" elementType="Argument">
            <stringProp name="Argument.name">frontendPoolUsers</stringProp>
            <stringProp name="Argument.value">${__P(frontendPoolUsers,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminPoolUsers" elementType="Argument">
            <stringProp name="Argument.name">adminPoolUsers</stringProp>
            <stringProp name="Argument.value">${__P(adminPoolUsers,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="csrPoolUsers" elementType="Argument">
            <stringProp name="Argument.name">csrPoolUsers</stringProp>
            <stringProp name="Argument.value">${__P(csrPoolUsers,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="apiPoolUsers" elementType="Argument">
            <stringProp name="Argument.name">apiPoolUsers</stringProp>
            <stringProp name="Argument.value">${__P(apiPoolUsers,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="oneThreadScenariosPoolUsers" elementType="Argument">
            <stringProp name="Argument.name">oneThreadScenariosPoolUsers</stringProp>
            <stringProp name="Argument.value">${__P(oneThreadScenariosPoolUsers,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphQLPoolUsers" elementType="Argument">
            <stringProp name="Argument.name">graphQLPoolUsers</stringProp>
            <stringProp name="Argument.value">${__P(graphQLPoolUsers,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="combinedBenchmarkPoolUsers" elementType="Argument">
            <stringProp name="Argument.name">combinedBenchmarkPoolUsers</stringProp>
            <stringProp name="Argument.value">${__P(combinedBenchmarkPoolUsers,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="restAPIcombinedBenchmarkPoolUsers" elementType="Argument">
            <stringProp name="Argument.name">restAPIcombinedBenchmarkPoolUsers</stringProp>
            <stringProp name="Argument.value">${__P(restAPIcombinedBenchmarkPoolUsers,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphQLcombinedBenchmarkPoolUsers" elementType="Argument">
            <stringProp name="Argument.name">graphQLcombinedBenchmarkPoolUsers</stringProp>
            <stringProp name="Argument.value">${__P(graphQLcombinedBenchmarkPoolUsers,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="accountManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">accountManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(accountManagementPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="addToCartByCustomerPercentage" elementType="Argument">
            <stringProp name="Argument.name">addToCartByCustomerPercentage</stringProp>
            <stringProp name="Argument.value">${__P(addToCartByCustomerPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="addToCartByGuestPercentage" elementType="Argument">
            <stringProp name="Argument.name">addToCartByGuestPercentage</stringProp>
            <stringProp name="Argument.value">${__P(addToCartByGuestPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="addToWishlistPercentage" elementType="Argument">
            <stringProp name="Argument.name">addToWishlistPercentage</stringProp>
            <stringProp name="Argument.value">${__P(addToWishlistPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCMSManagementDelay" elementType="Argument">
            <stringProp name="Argument.name">adminCMSManagementDelay</stringProp>
            <stringProp name="Argument.value">${__P(adminCMSManagementDelay,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCMSManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">adminCMSManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(adminCMSManagementPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCategoryCount" elementType="Argument">
            <stringProp name="Argument.name">adminCategoryCount</stringProp>
            <stringProp name="Argument.value">${__P(adminCategoryCount,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCategoryManagementDelay" elementType="Argument">
            <stringProp name="Argument.name">adminCategoryManagementDelay</stringProp>
            <stringProp name="Argument.value">${__P(adminCategoryManagementDelay,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCategoryManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">adminCategoryManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(adminCategoryManagementPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCreateOrderPercentage" elementType="Argument">
            <stringProp name="Argument.name">adminCreateOrderPercentage</stringProp>
            <stringProp name="Argument.value">${__P(adminCreateOrderPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCreateProcessReturns" elementType="Argument">
            <stringProp name="Argument.name">adminCreateProcessReturns</stringProp>
            <stringProp name="Argument.value">${__P(adminCreateProcessReturns,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCreateProcessReturnsDelay" elementType="Argument">
            <stringProp name="Argument.name">adminCreateProcessReturnsDelay</stringProp>
            <stringProp name="Argument.value">${__P(adminCreateProcessReturnsDelay,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCustomerManagementDelay" elementType="Argument">
            <stringProp name="Argument.name">adminCustomerManagementDelay</stringProp>
            <stringProp name="Argument.value">${__P(adminCustomerManagementDelay,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCustomerManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">adminCustomerManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(adminCustomerManagementPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminEditOrderPercentage" elementType="Argument">
            <stringProp name="Argument.name">adminEditOrderPercentage</stringProp>
            <stringProp name="Argument.value">${__P(adminEditOrderPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminImportCustomerBehavior" elementType="Argument">
            <stringProp name="Argument.name">adminImportCustomerBehavior</stringProp>
            <stringProp name="Argument.value">${__P(adminImportCustomerBehavior,append)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminImportCustomerFilePath" elementType="Argument">
            <stringProp name="Argument.name">adminImportCustomerFilePath</stringProp>
            <stringProp name="Argument.value">${__P(adminImportCustomerFilePath,import_customers/customer_import_addupdate.csv)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminImportProductBehavior" elementType="Argument">
            <stringProp name="Argument.name">adminImportProductBehavior</stringProp>
            <stringProp name="Argument.value">${__P(adminImportProductBehavior,append)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminImportProductFilePath" elementType="Argument">
            <stringProp name="Argument.name">adminImportProductFilePath</stringProp>
            <stringProp name="Argument.value">${__P(adminImportProductFilePath,import_products/product_import_append_1.csv)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminProductCreationPercentage" elementType="Argument">
            <stringProp name="Argument.name">adminProductCreationPercentage</stringProp>
            <stringProp name="Argument.value">${__P(adminProductCreationPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminProductEditingPercentage" elementType="Argument">
            <stringProp name="Argument.name">adminProductEditingPercentage</stringProp>
            <stringProp name="Argument.value">${__P(adminProductEditingPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminPromotionRulesPercentage" elementType="Argument">
            <stringProp name="Argument.name">adminPromotionRulesPercentage</stringProp>
            <stringProp name="Argument.value">${__P(adminPromotionRulesPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminPromotionsManagement" elementType="Argument">
            <stringProp name="Argument.name">adminPromotionsManagement</stringProp>
            <stringProp name="Argument.value">${__P(adminPromotionsManagement,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminPromotionsManagementDelay" elementType="Argument">
            <stringProp name="Argument.name">adminPromotionsManagementDelay</stringProp>
            <stringProp name="Argument.value">${__P(adminPromotionsManagementDelay,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminReturnsManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">adminReturnsManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(adminReturnsManagementPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="admin_browse_customer_filter_text" elementType="Argument">
            <stringProp name="Argument.name">admin_browse_customer_filter_text</stringProp>
            <stringProp name="Argument.value">${__P(admin_browse_customer_filter_text,Firstname)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="admin_browse_orders_filter_text" elementType="Argument">
            <stringProp name="Argument.name">admin_browse_orders_filter_text</stringProp>
            <stringProp name="Argument.value">${__P(admin_browse_orders_filter_text,pending)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="admin_browse_product_filter_text" elementType="Argument">
            <stringProp name="Argument.name">admin_browse_product_filter_text</stringProp>
            <stringProp name="Argument.value">${__P(admin_browse_product_filter_text,Product)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="admin_token" elementType="Argument">
            <stringProp name="Argument.name">admin_token</stringProp>
            <stringProp name="Argument.value">${__P(admin_token,admin_token)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="admin_users_distribution_per_admin_pool" elementType="Argument">
            <stringProp name="Argument.name">admin_users_distribution_per_admin_pool</stringProp>
            <stringProp name="Argument.value">${__P(admin_users_distribution_per_admin_pool,1)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="apiBasePercentage" elementType="Argument">
            <stringProp name="Argument.name">apiBasePercentage</stringProp>
            <stringProp name="Argument.value">${__P(apiBasePercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="apiOrderInvoiceShipmentSync" elementType="Argument">
            <stringProp name="Argument.name">apiOrderInvoiceShipmentSync</stringProp>
            <stringProp name="Argument.value">${__P(apiOrderInvoiceShipmentSync,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="apiProcessOrders" elementType="Argument">
            <stringProp name="Argument.name">apiProcessOrders</stringProp>
            <stringProp name="Argument.value">${__P(apiProcessOrders,1)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="apiSinglePercentage" elementType="Argument">
            <stringProp name="Argument.name">apiSinglePercentage</stringProp>
            <stringProp name="Argument.value">${__P(apiSinglePercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="browseCatalogByCustomerPercentage" elementType="Argument">
            <stringProp name="Argument.name">browseCatalogByCustomerPercentage</stringProp>
            <stringProp name="Argument.value">${__P(browseCatalogByCustomerPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="browseCatalogByGuestPercentage" elementType="Argument">
            <stringProp name="Argument.name">browseCatalogByGuestPercentage</stringProp>
            <stringProp name="Argument.value">${__P(browseCatalogByGuestPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="browseCustomerGridPercentage" elementType="Argument">
            <stringProp name="Argument.name">browseCustomerGridPercentage</stringProp>
            <stringProp name="Argument.value">${__P(browseCustomerGridPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="browseOrderGridPercentage" elementType="Argument">
            <stringProp name="Argument.name">browseOrderGridPercentage</stringProp>
            <stringProp name="Argument.value">${__P(browseOrderGridPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="browseProductGridPercentage" elementType="Argument">
            <stringProp name="Argument.name">browseProductGridPercentage</stringProp>
            <stringProp name="Argument.value">${__P(browseProductGridPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAccountManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAccountManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAccountManagementPercentage,1)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAddToCartByGuestPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAddToCartByGuestPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAddToCartByGuestPercentage,26)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAddToWishlistPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAddToWishlistPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAddToWishlistPercentage,1.5)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminBrowseCustomerGridPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminBrowseCustomerGridPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminBrowseCustomerGridPercentage,0.1)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminBrowseOrderGridPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminBrowseOrderGridPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminBrowseOrderGridPercentage,0.2)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminBrowseProductGridPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminBrowseProductGridPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminBrowseProductGridPercentage,0.2)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminCMSManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminCMSManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminCMSManagementPercentage,0.35)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminCategoryManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminCategoryManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminCategoryManagementPercentage,0.15)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminCreateOrderPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminCreateOrderPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminCreateOrderPercentage,0.5)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminCustomerManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminCustomerManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminCustomerManagementPercentage,0.4)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminEditOrderPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminEditOrderPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminEditOrderPercentage,1)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminProductCreationPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminProductCreationPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminProductCreationPercentage,0.5)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminProductEditingPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminProductEditingPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminProductEditingPercentage,0.65)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminPromotionRulesPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminPromotionRulesPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminPromotionRulesPercentage,0.2)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cAdminReturnsManagementPercentage" elementType="Argument">
            <stringProp name="Argument.name">cAdminReturnsManagementPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cAdminReturnsManagementPercentage,0.75)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cBrowseCatalogByGuestPercentage" elementType="Argument">
            <stringProp name="Argument.name">cBrowseCatalogByGuestPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cBrowseCatalogByGuestPercentage,29)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cCheckoutByCustomerPercentage" elementType="Argument">
            <stringProp name="Argument.name">cCheckoutByCustomerPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cCheckoutByCustomerPercentage,3.5)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cCheckoutByGuestPercentage" elementType="Argument">
            <stringProp name="Argument.name">cCheckoutByGuestPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cCheckoutByGuestPercentage,3.5)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cCompareProductsPercentage" elementType="Argument">
            <stringProp name="Argument.name">cCompareProductsPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cCompareProductsPercentage,1.5)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="cSiteSearchPercentage" elementType="Argument">
            <stringProp name="Argument.name">cSiteSearchPercentage</stringProp>
            <stringProp name="Argument.value">${__P(cSiteSearchPercentage,29)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="catalogGraphQLPercentage" elementType="Argument">
            <stringProp name="Argument.name">catalogGraphQLPercentage</stringProp>
            <stringProp name="Argument.value">${__P(catalogGraphQLPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="categories_count" elementType="Argument">
            <stringProp name="Argument.name">categories_count</stringProp>
            <stringProp name="Argument.value">${__P(categories_count,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="checkoutALargeBulkOfProductsByGuestPercentage" elementType="Argument">
            <stringProp name="Argument.name">checkoutALargeBulkOfProductsByGuestPercentage</stringProp>
            <stringProp name="Argument.value">${__P(checkoutALargeBulkOfProductsByGuestPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="checkoutByCustomerPercentage" elementType="Argument">
            <stringProp name="Argument.name">checkoutByCustomerPercentage</stringProp>
            <stringProp name="Argument.value">${__P(checkoutByCustomerPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="checkoutByGuestPercentage" elementType="Argument">
            <stringProp name="Argument.name">checkoutByGuestPercentage</stringProp>
            <stringProp name="Argument.value">${__P(checkoutByGuestPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="compareProductsPercentage" elementType="Argument">
            <stringProp name="Argument.name">compareProductsPercentage</stringProp>
            <stringProp name="Argument.value">${__P(compareProductsPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="configurable_products_count" elementType="Argument">
            <stringProp name="Argument.name">configurable_products_count</stringProp>
            <stringProp name="Argument.value">${__P(configurable_products_count,15)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="customer_checkout_percent" elementType="Argument">
            <stringProp name="Argument.name">customer_checkout_percent</stringProp>
            <stringProp name="Argument.value">${__P(customer_checkout_percent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="customer_password" elementType="Argument">
            <stringProp name="Argument.name">customer_password</stringProp>
            <stringProp name="Argument.value">${__P(customer_password,)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="customers_page_size" elementType="Argument">
            <stringProp name="Argument.name">customers_page_size</stringProp>
            <stringProp name="Argument.value">${__P(customers_page_size,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="dashboard_enabled" elementType="Argument">
            <stringProp name="Argument.name">dashboard_enabled</stringProp>
            <stringProp name="Argument.value">${__P(dashboard_enabled,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="exportCustomersPercentage" elementType="Argument">
            <stringProp name="Argument.name">exportCustomersPercentage</stringProp>
            <stringProp name="Argument.value">${__P(exportCustomersPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="exportProductsPercentage" elementType="Argument">
            <stringProp name="Argument.name">exportProductsPercentage</stringProp>
            <stringProp name="Argument.value">${__P(exportProductsPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="Argument">
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.value">${__P(form_key,uVEW54r8kKday8Wk)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlAddConfigurableProductToCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlAddConfigurableProductToCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlAddConfigurableProductToCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlAddSimpleProductToCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlAddSimpleProductToCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlAddSimpleProductToCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlApplyCouponToCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlApplyCouponToCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlApplyCouponToCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlCatalogBrowsingByGuestPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlCatalogBrowsingByGuestPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlCatalogBrowsingByGuestPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlCheckoutALargeBulkOfProductsByGuestPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlCheckoutALargeBulkOfProductsByGuestPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlCheckoutALargeBulkOfProductsByGuestPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlCheckoutByGuestPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlCheckoutByGuestPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlCheckoutByGuestPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlCreateEmptyCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlCreateEmptyCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlCreateEmptyCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetCategoryListByCategoryIdPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetCategoryListByCategoryIdPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetCategoryListByCategoryIdPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetCmsPageByIdPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetCmsPageByIdPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetCmsPageByIdPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetCmsPageWithPageBuilderProductListPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetCmsPageWithPageBuilderProductListPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetCmsPageWithPageBuilderProductListPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetConfigurableProductDetailsByNamePercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetConfigurableProductDetailsByNamePercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetConfigurableProductDetailsByNamePercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetConfigurableProductDetailsByProductUrlKeyPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetConfigurableProductDetailsByProductUrlKeyPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetConfigurableProductDetailsByProductUrlKeyPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetEmptyCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetEmptyCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetEmptyCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetListOfProductsByCategoryIdPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetListOfProductsByCategoryIdPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetListOfProductsByCategoryIdPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetNavigationMenuByCategoryIdPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetNavigationMenuByCategoryIdPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetNavigationMenuByCategoryIdPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetProductSearchByTextAndCategoryIdPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetProductSearchByTextAndCategoryIdPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetProductSearchByTextAndCategoryIdPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetSimpleProductDetailsByNamePercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetSimpleProductDetailsByNamePercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetSimpleProductDetailsByNamePercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlGetSimpleProductDetailsByProductUrlKeyPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlGetSimpleProductDetailsByProductUrlKeyPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlGetSimpleProductDetailsByProductUrlKeyPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlRemoveConfigurableProductFromCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlRemoveConfigurableProductFromCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlRemoveConfigurableProductFromCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlRemoveCouponFromCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlRemoveCouponFromCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlRemoveCouponFromCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlRemoveSimpleProductFromCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlRemoveSimpleProductFromCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlRemoveSimpleProductFromCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlSetBillingAddressOnCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlSetBillingAddressOnCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlSetBillingAddressOnCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlSetShippingAddressOnCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlSetShippingAddressOnCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlSetShippingAddressOnCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlUpdateConfigurableProductQtyInCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlUpdateConfigurableProductQtyInCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlUpdateConfigurableProductQtyInCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlUpdateConfigurableProductQtyInCartWithPricesPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlUpdateConfigurableProductQtyInCartWithPricesPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlUpdateConfigurableProductQtyInCartWithPricesPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlUpdateSimpleProductQtyInCartPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlUpdateSimpleProductQtyInCartPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlUpdateSimpleProductQtyInCartPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlUpdateSimpleProductQtyInCartWithPricesPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlUpdateSimpleProductQtyInCartWithPricesPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlUpdateSimpleProductQtyInCartWithPricesPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="graphqlUrlInfoByUrlKeyPercentage" elementType="Argument">
            <stringProp name="Argument.name">graphqlUrlInfoByUrlKeyPercentage</stringProp>
            <stringProp name="Argument.value">${__P(graphqlUrlInfoByUrlKeyPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="guest_checkout_percent" elementType="Argument">
            <stringProp name="Argument.name">guest_checkout_percent</stringProp>
            <stringProp name="Argument.value">${__P(guest_checkout_percent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="importCustomersPercentage" elementType="Argument">
            <stringProp name="Argument.name">importCustomersPercentage</stringProp>
            <stringProp name="Argument.value">${__P(importCustomersPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="importProductsPercentage" elementType="Argument">
            <stringProp name="Argument.name">importProductsPercentage</stringProp>
            <stringProp name="Argument.value">${__P(importProductsPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="numberOfRelatedSimpleProductsInTheCart" elementType="Argument">
            <stringProp name="Argument.name">numberOfRelatedSimpleProductsInTheCart</stringProp>
            <stringProp name="Argument.value">${__P(numberOfRelatedSimpleProductsInTheCart,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="orders_page_size" elementType="Argument">
            <stringProp name="Argument.name">orders_page_size</stringProp>
            <stringProp name="Argument.value">${__P(orders_page_size,20)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="productCompareDelay" elementType="Argument">
            <stringProp name="Argument.name">productCompareDelay</stringProp>
            <stringProp name="Argument.value">${__P(productCompareDelay,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="productGridMassActionPercentage" elementType="Argument">
            <stringProp name="Argument.name">productGridMassActionPercentage</stringProp>
            <stringProp name="Argument.value">${__P(productGridMassActionPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="products_page_size" elementType="Argument">
            <stringProp name="Argument.name">products_page_size</stringProp>
            <stringProp name="Argument.value">${__P(products_page_size,20)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="ramp_period" elementType="Argument">
            <stringProp name="Argument.name">ramp_period</stringProp>
            <stringProp name="Argument.value">${__P(ramp_period,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="redis_host" elementType="Argument">
            <stringProp name="Argument.name">redis_host</stringProp>
            <stringProp name="Argument.value">${__P(redis_host,)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="report_save_path" elementType="Argument">
            <stringProp name="Argument.name">report_save_path</stringProp>
            <stringProp name="Argument.value">${__P(report_save_path,./)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="response_time_file_name" elementType="Argument">
            <stringProp name="Argument.name">response_time_file_name</stringProp>
            <stringProp name="Argument.value">${__P(response_time_file_name,production.csv)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="reviewByCustomerPercentage" elementType="Argument">
            <stringProp name="Argument.name">reviewByCustomerPercentage</stringProp>
            <stringProp name="Argument.value">${__P(reviewByCustomerPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="reviewDelay" elementType="Argument">
            <stringProp name="Argument.name">reviewDelay</stringProp>
            <stringProp name="Argument.value">${__P(reviewDelay,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="scenario" elementType="Argument">
            <stringProp name="Argument.name">scenario</stringProp>
            <stringProp name="Argument.value">${__P(scenario,)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="searchAdvancedPercentage" elementType="Argument">
            <stringProp name="Argument.name">searchAdvancedPercentage</stringProp>
            <stringProp name="Argument.value">${__P(searchAdvancedPercentage,10)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="searchQuickFilterPercentage" elementType="Argument">
            <stringProp name="Argument.name">searchQuickFilterPercentage</stringProp>
            <stringProp name="Argument.value">${__P(searchQuickFilterPercentage,30)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="searchQuickPercentage" elementType="Argument">
            <stringProp name="Argument.name">searchQuickPercentage</stringProp>
            <stringProp name="Argument.value">${__P(searchQuickPercentage,60)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="simple_products_count" elementType="Argument">
            <stringProp name="Argument.name">simple_products_count</stringProp>
            <stringProp name="Argument.value">${__P(simple_products_count,125)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="siteSearchPercentage" elementType="Argument">
            <stringProp name="Argument.name">siteSearchPercentage</stringProp>
            <stringProp name="Argument.value">${__P(siteSearchPercentage,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="start_time" elementType="Argument">
            <stringProp name="Argument.name">start_time</stringProp>
            <stringProp name="Argument.value">${__P(start_time,${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)})}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="starting_index" elementType="Argument">
            <stringProp name="Argument.name">starting_index</stringProp>
            <stringProp name="Argument.value">${__P(starting_index,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="think_time_delay_offset" elementType="Argument">
            <stringProp name="Argument.name">think_time_delay_offset</stringProp>
            <stringProp name="Argument.value">${__P(think_time_delay_offset,2000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="think_time_deviation" elementType="Argument">
            <stringProp name="Argument.name">think_time_deviation</stringProp>
            <stringProp name="Argument.value">${__P(think_time_deviation,1000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="url_suffix" elementType="Argument">
            <stringProp name="Argument.name">url_suffix</stringProp>
            <stringProp name="Argument.value">${__P(url_suffix,.html)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="website_id" elementType="Argument">
            <stringProp name="Argument.name">website_id</stringProp>
            <stringProp name="Argument.value">${__P(website_id,1)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="wishlistDelay" elementType="Argument">
            <stringProp name="Argument.name">wishlistDelay</stringProp>
            <stringProp name="Argument.value">${__P(wishlistDelay,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
    </TestPlan>
    <hashTree>
    <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="false">
      <boolProp name="ResultCollector.error_logging">false</boolProp>
      <objProp>
        <value class="SampleSaveConfiguration">
          <time>true</time>
          <latency>true</latency>
          <timestamp>true</timestamp>
          <success>true</success>
          <label>true</label>
          <code>true</code>
          <message>true</message>
          <threadName>true</threadName>
          <dataType>true</dataType>
          <encoding>false</encoding>
          <assertions>true</assertions>
          <subresults>true</subresults>
          <responseData>false</responseData>
          <samplerData>false</samplerData>
          <xml>true</xml>
          <fieldNames>false</fieldNames>
          <responseHeaders>false</responseHeaders>
          <requestHeaders>true</requestHeaders>
          <responseDataOnError>false</responseDataOnError>
          <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
          <assertionsResultsToSave>0</assertionsResultsToSave>
          <bytes>true</bytes>
          <hostname>true</hostname>
          <threadCounts>true</threadCounts>
          <sampleCount>true</sampleCount>
        </value>
      </objProp>
      <stringProp name="filename"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/view_results_tree.jmx</stringProp></ResultCollector>
    <hashTree/>
  
    <ResultCollector guiclass="StatVisualizer" testclass="ResultCollector" testname="Aggregate Report" enabled="false">
        <boolProp name="ResultCollector.error_logging">false</boolProp>
        <objProp>
          <name>saveConfig</name>
          <value class="SampleSaveConfiguration">
            <time>true</time>
            <latency>true</latency>
            <timestamp>true</timestamp>
            <success>true</success>
            <label>true</label>
            <code>true</code>
            <message>true</message>
            <threadName>true</threadName>
            <dataType>true</dataType>
            <encoding>false</encoding>
            <assertions>true</assertions>
            <subresults>true</subresults>
            <responseData>false</responseData>
            <samplerData>false</samplerData>
            <xml>false</xml>
            <fieldNames>true</fieldNames>
            <responseHeaders>false</responseHeaders>
            <requestHeaders>false</requestHeaders>
            <responseDataOnError>false</responseDataOnError>
            <saveAssertionResultsFailureMessage>true</saveAssertionResultsFailureMessage>
            <assertionsResultsToSave>0</assertionsResultsToSave>
            <bytes>true</bytes>
            <threadCounts>true</threadCounts>
            <idleTime>true</idleTime>
          </value>
        </objProp>
        <stringProp name="filename">/tmp/aggregate-jmeter-results.jtl</stringProp>
      <stringProp name="TestPlan.comments">tool/fragments/ce/aggregate_report.jmx</stringProp></ResultCollector>
    <hashTree/>
  
    <ConfigTestElement guiclass="HttpDefaultsGui" testclass="ConfigTestElement" testname="HTTP Request Defaults" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain">${host}</stringProp>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding">utf-8</stringProp>
      <stringProp name="HTTPSampler.path"/>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <stringProp name="HTTPSampler.concurrentPool">4</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_request_default.jmx</stringProp></ConfigTestElement>
    <hashTree/>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="Accept-Language" elementType="Header">
          <stringProp name="Header.name">Accept-Language</stringProp>
          <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
        </elementProp>
        <elementProp name="Accept" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">application/json,text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
        </elementProp>
        <elementProp name="User-Agent" elementType="Header">
          <stringProp name="Header.name">User-Agent</stringProp>
          <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
        </elementProp>
        <elementProp name="Accept-Encoding" elementType="Header">
          <stringProp name="Header.name">Accept-Encoding</stringProp>
          <stringProp name="Header.value">gzip, deflate</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <SetupThreadGroup guiclass="SetupThreadGroupGui" testclass="SetupThreadGroup" testname="setUp Thread Group" enabled="true">
      <stringProp name="ThreadGroup.on_sample_error">stoptest</stringProp>
      <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
        <boolProp name="LoopController.continue_forever">false</boolProp>
        <stringProp name="LoopController.loops">1</stringProp>
      </elementProp>
      <stringProp name="ThreadGroup.num_threads">1</stringProp>
      <stringProp name="ThreadGroup.ramp_time">1</stringProp>
      <longProp name="ThreadGroup.start_time">1384333221000</longProp>
      <longProp name="ThreadGroup.end_time">1384333221000</longProp>
      <boolProp name="ThreadGroup.scheduler">false</boolProp>
      <stringProp name="ThreadGroup.duration"/>
      <stringProp name="ThreadGroup.delay"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/setup.jmx</stringProp></SetupThreadGroup>
    <hashTree>
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: Initialize" enabled="true">
      <stringProp name="BeanShellSampler.query">
props.remove("category_url_key");
props.remove("category_url_keys_list");
props.remove("category_name");
props.remove("category_names_list");
props.remove("simple_products_list");
props.remove("simple_products_list_for_edit");
props.remove("configurable_products_list");
props.remove("configurable_products_list_for_edit");
props.remove("users");
props.remove("customer_emails_list");
props.remove("categories");
props.remove("cms_pages");
props.remove("cms_blocks");
props.remove("coupon_codes");

/* This is only used when admin is enabled. */
props.put("activeAdminThread", "");

/* Set the environment - at this time '01' or '02' */
String path = "${host}";
String environment = path.substring(4, 6);
props.put("environment", environment);</stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/initialize.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: validate user defined variables" enabled="true">
      <stringProp name="BeanShellSampler.query">Boolean stopTestOnError (String error) {
    log.error(error);
    System.out.println(error);
    SampleResult.setStopTest(true);
    return false;
}

if ("${host}" == "1") {
    return stopTestOnError("\"host\" parameter is not defined. Please define host parameter as: \"-Jhost=example.com\"");
}

String path = "${base_path}";
String slash = "/";
if (!slash.equals(path.substring(path.length() -1)) || !slash.equals(path.substring(0, 1))) {
    return stopTestOnError("\"base_path\" parameter is invalid. It must start and end with \"/\"");
}
</stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/validate_user_defined_variables.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Login admin" enabled="true"/>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1397214398">Welcome</stringProp>
            <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
          <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_form_key</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="dummy" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">dummy</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
            <elementProp name="login[password]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_password}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">login[password]</stringProp>
            </elementProp>
            <elementProp name="login[username]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_user}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">login[username]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <stringProp name="HTTPSampler.implementation">Java</stringProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/setup/login.jmx</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert logged-in" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1847038912">&lt;title&gt;Dashboard / Magento Admin&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
          <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract admin users" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/setup/extract_admin_users.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Extract Admin Users" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/user/roleGrid/limit/200/?ajax=true&amp;isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="BeanShell PostProcessor" enabled="true">
          <stringProp name="filename"/>
          <stringProp name="parameters"/>
          <boolProp name="resetInterpreter">false</boolProp>
          <stringProp name="script">import java.util.regex.Pattern;
                    import java.util.regex.Matcher;
                    import java.util.LinkedList;

                    LinkedList adminUserList = new LinkedList();
                    String response = new String(data);
                    Pattern pattern = Pattern.compile("&lt;td\\W*?data-column=.username[^&gt;]*?&gt;\\W*?(\\w+)\\W*?&lt;");
                    Matcher matcher = pattern.matcher(response);

                    while (matcher.find()) {
                    adminUserList.add(matcher.group(1));
                    }

                    adminUserList.poll();
                    props.put("adminUserList", adminUserList);
                    props.put("adminUserListIterator", adminUserList.descendingIterator());
                </stringProp>
        </BeanShellPostProcessor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract customers" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/setup/extract_customers.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Customers" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="namespace" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">customer_listing</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">namespace</stringProp>
            </elementProp>
            <elementProp name="sorting[field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">entity_id</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[field]</stringProp>
            </elementProp>
            <elementProp name="sorting[direction]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">asc</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[direction]</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
            <elementProp name="filters[placeholder]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">customer_since[locale]=en_US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">filters[placeholder]</stringProp>
            </elementProp>
            <elementProp name="filters[group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">filters[group_id]</stringProp>
            </elementProp>
            <elementProp name="filters[website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">filters[website_id]</stringProp>
            </elementProp>
            <elementProp name="paging[pageSize]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${customers_page_size}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[pageSize]</stringProp>
            </elementProp>
            <elementProp name="paging[current]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[current]</stringProp>
            </elementProp>
            <elementProp name="sorting[field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">entity_id</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[field]</stringProp>
            </elementProp>
            <elementProp name="sorting[direction]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">asc</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[direction]</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Parse variables" enabled="true">
          <stringProp name="scriptLanguage">groovy</stringProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="cacheKey">true</stringProp>
          <stringProp name="script">import groovy.json.JsonSlurper
import java.util.ArrayList;
import java.util.LinkedList;

emailsList = new LinkedList();
idsList = new ArrayList();


def jsonSlurper = new JsonSlurper();
def jsonResponse = jsonSlurper.parseText(prev.getResponseDataAsString());

jsonResponse.items.each { item -&gt; 
	emailsList.add(item.email);
	idsList.add(item.entity_id.toString());
}

props.put("customer_emails_list", emailsList);
props.put("customer_ids_list", idsList);
//
log.info("Cust IDs: " + idsList);
log.info("Emails: " + emailsList);
</stringProp>
        </JSR223PostProcessor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract region ids" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/setup/extract_region_ids.jmx</stringProp>
    </TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Extract Region ids" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="parent" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">parent</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/directory/json/countryRegion/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Parse and put region id into variables" enabled="true">
          <stringProp name="scriptLanguage">groovy</stringProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="cacheKey"/>
          <stringProp name="script">import groovy.json.JsonSlurper
def jsonSlurper = new JsonSlurper();
def regionResponse = jsonSlurper.parseText(prev.getResponseDataAsString());

regionResponse.each { region -&gt;
	if (region.label.toString() == "Alabama") {
		props.put("alabama_region_id", region.value.toString());
	} else if (region.label.toString() == 'California') {
		props.put("california_region_id", region.value.toString());
	}
}</stringProp>
        </JSR223PostProcessor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="SetUp - Api Data Retrieval" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^.{10,}$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="SetUp - Get CMS pages" enabled="true"/>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get CMS pages" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments">
              <elementProp name="searchCriteria[current_page]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">1</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[current_page]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[page_size]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                <stringProp name="Argument.value">20</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/cmsPage/search</stringProp>
          <stringProp name="HTTPSampler.method">GET</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
          <stringProp name="TestPlan.comments">tool/fragments/ce/setup/get_cms_pages.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert results are present" enabled="true">
            <stringProp name="JSON_PATH">$.total_count</stringProp>
            <stringProp name="EXPECTED_VALUE">0</stringProp>
            <boolProp name="JSONVALIDATION">true</boolProp>
            <boolProp name="EXPECT_NULL">false</boolProp>
            <boolProp name="INVERT">true</boolProp>
            <boolProp name="ISREGEX">false</boolProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
          <hashTree/>
          <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="PostProcessor" enabled="true">
            <stringProp name="scriptLanguage">javascript</stringProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="cacheKey"/>
            <stringProp name="script">var data = JSON.parse(prev.getResponseDataAsString());

var cmsPages = [];

for (var i in data.items) {
    cmsPages.push({"id": data.items[i].id, "identifier": data.items[i].identifier});
 }

props.put("cms_pages", cmsPages);
</stringProp>
          </JSR223PostProcessor>
          <hashTree/>
        </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract configurable products" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/setup/extract_configurable_products.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get configurable products" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">type_id</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
            </elementProp>
            <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">configurable</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
            </elementProp>
            <elementProp name="searchCriteria[pageSize]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${configurable_products_count}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">searchCriteria[pageSize]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/products</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Parse variables" enabled="true">
          <stringProp name="scriptLanguage">groovy</stringProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="cacheKey">true</stringProp>
          <stringProp name="script">import groovy.json.JsonSlurper
import java.util.ArrayList;
import java.util.LinkedList;
import org.apache.commons.codec.binary.Base64;

def jsonSlurper = new JsonSlurper();
def jsonResponse = jsonSlurper.parseText(prev.getResponseDataAsString());


productList = new ArrayList();
jsonResponse.items.each { item -&gt;

	Map productMap = new HashMap();
	productMap.put("id", item.id.toString());
	productMap.put("title", item.name);
	productMap.put("sku", item.sku);
	url_key = item.custom_attributes.find({ it.attribute_code == "url_key" }).value
	productMap.put("url_key", url_key);

	productUrl = vars.get("request_protocol") + "://" + vars.get("host") + vars.get("base_path") + url_key + vars.get("url_suffix");
     encodedUrl = new String(Base64.encodeBase64(productUrl.getBytes()));
	productMap.put("uenc", encodedUrl);

	// Collect products map in products list
	productList.add(productMap);
}

props.put("configurable_products_list", productList);

log.info("Products: " + productList);




</stringProp>
        </JSR223PostProcessor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract configurable products for edit" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/setup/extract_configurable_products_for_edit.jmx</stringProp>
</TestFragmentController>
    <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get configurable products for edit" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
            <collectionProp name="Arguments.arguments">
              <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">type_id</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">configurable</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[pageSize]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${configurable_products_count}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[pageSize]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[currentPage]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">2</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[currentPage]</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/V1/products</stringProp>
          <stringProp name="HTTPSampler.method">GET</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">configurable_products_for_edit_url_keys</stringProp>
            <stringProp name="RegexExtractor.regex">url_key\",\"value\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product ids" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">configurable_product_for_edit_ids</stringProp>
            <stringProp name="RegexExtractor.regex">\"id\":(\d+),\"sku\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product titles" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">configurable_product_for_edit_names</stringProp>
            <stringProp name="RegexExtractor.regex">name\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product skus" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">configurable_product_for_edit_skus</stringProp>
            <stringProp name="RegexExtractor.regex">sku\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
        </hashTree>
      </hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller: Prepare configurable products for edit" enabled="true">
        <stringProp name="ForeachController.inputVal">configurable_product_for_edit_ids</stringProp>
        <stringProp name="ForeachController.returnVal">configurable_product_for_edit_id</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
      </ForeachController>
      <hashTree>
        <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter for edit" enabled="true">
          <stringProp name="CounterConfig.start">1</stringProp>
          <stringProp name="CounterConfig.end"/>
          <stringProp name="CounterConfig.incr">1</stringProp>
          <stringProp name="CounterConfig.name">configurable_products_counter_for_edit</stringProp>
          <stringProp name="CounterConfig.format"/>
          <boolProp name="CounterConfig.per_user">false</boolProp>
        </CounterConfig>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: Collect configurable product for edit" enabled="true">
          <stringProp name="BeanShellSampler.query">import java.util.ArrayList;
import java.util.HashMap;
import org.apache.commons.codec.binary.Base64;
ArrayList editProductList;

if (1 == Integer.parseInt(vars.get("configurable_products_counter_for_edit"))) {
    editProductList = new ArrayList();
    props.put("configurable_products_list_for_edit", editProductList);
} else {
    editProductList = props.get("configurable_products_list_for_edit");
}

String productUrl = vars.get("request_protocol") + "://" + vars.get("host") + vars.get("base_path") + vars.get("configurable_products_for_edit_url_keys_" + vars.get("configurable_products_counter_for_edit"))+ vars.get("url_suffix");
encodedUrl = Base64.encodeBase64(productUrl.getBytes());
// Create product map
Map editProductMap = new HashMap();
editProductMap.put("id", vars.get("configurable_product_for_edit_id"));
editProductMap.put("title", vars.get("configurable_product_for_edit_names_" + vars.get("configurable_products_counter_for_edit")));
editProductMap.put("sku", vars.get("configurable_product_for_edit_skus_" + vars.get("configurable_products_counter_for_edit")));
editProductMap.put("url_key", vars.get("configurable_products_for_edit_url_keys_" + vars.get("configurable_products_counter_for_edit")));
editProductMap.put("uenc", new String(encodedUrl));

// Collect products map in products list
editProductList.add(editProductMap);</stringProp>
          <stringProp name="BeanShellSampler.filename"/>
          <stringProp name="BeanShellSampler.parameters"/>
          <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
        </BeanShellSampler>
        <hashTree/>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract simple products" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/setup/extract_simple_products.jmx</stringProp>
</TestFragmentController>
    <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get simple products" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
            <collectionProp name="Arguments.arguments">
              <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">type_id</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">simple</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[pageSize]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${simple_products_count}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[pageSize]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][0][filters][1][field]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">attribute_set_id</stringProp>
                <stringProp name="Argument.metadata">!=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][field]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][0][filters][1][value]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">4</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][value]</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/V1/products</stringProp>
          <stringProp name="HTTPSampler.method">GET</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">simple_products_url_keys</stringProp>
            <stringProp name="RegexExtractor.regex">url_key\",\"value\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product ids" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">simple_product_ids</stringProp>
            <stringProp name="RegexExtractor.regex">\"id\":(\d+),\"sku\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product titles" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">simple_product_names</stringProp>
            <stringProp name="RegexExtractor.regex">name\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product skus" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">simple_product_skus</stringProp>
            <stringProp name="RegexExtractor.regex">sku\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
        </hashTree>
      </hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller: Prepare simple products" enabled="true">
        <stringProp name="ForeachController.inputVal">simple_product_ids</stringProp>
        <stringProp name="ForeachController.returnVal">simple_product_id</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
      </ForeachController>
      <hashTree>
        <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
          <stringProp name="CounterConfig.start">1</stringProp>
          <stringProp name="CounterConfig.end"/>
          <stringProp name="CounterConfig.incr">1</stringProp>
          <stringProp name="CounterConfig.name">simple_products_counter</stringProp>
          <stringProp name="CounterConfig.format"/>
          <boolProp name="CounterConfig.per_user">false</boolProp>
        </CounterConfig>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: Collect simple product" enabled="true">
          <stringProp name="BeanShellSampler.query">import java.util.ArrayList;
import java.util.HashMap;
import org.apache.commons.codec.binary.Base64;
ArrayList productList;

// If it is first iteration of cycle then recreate productList
if (1 == Integer.parseInt(vars.get("simple_products_counter"))) {
    productList = new ArrayList();
    props.put("simple_products_list", productList);
} else {
    productList = props.get("simple_products_list");
}
String productUrl = vars.get("request_protocol") + "://" + vars.get("host") + vars.get("base_path") + vars.get("simple_products_url_keys_" + vars.get("simple_products_counter"))+ vars.get("url_suffix");
encodedUrl = Base64.encodeBase64(productUrl.getBytes());
// Create product map
Map productMap = new HashMap();
productMap.put("id", vars.get("simple_product_id"));
productMap.put("title", vars.get("simple_product_names_" + vars.get("simple_products_counter")));
productMap.put("sku", vars.get("simple_product_skus_" + vars.get("simple_products_counter")));
productMap.put("url_key", vars.get("simple_products_url_keys_" + vars.get("simple_products_counter")));
productMap.put("uenc", new String(encodedUrl));

// Collect products map in products list
productList.add(productMap);</stringProp>
          <stringProp name="BeanShellSampler.filename"/>
          <stringProp name="BeanShellSampler.parameters"/>
          <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
        </BeanShellSampler>
        <hashTree/>
      </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract simple products for edit" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/setup/extract_simple_products_for_edit.jmx</stringProp>
</TestFragmentController>
    <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get simple products for edit" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
            <collectionProp name="Arguments.arguments">
              <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">type_id</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">simple</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[pageSize]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${simple_products_count}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[pageSize]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[currentPage]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">1</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[currentPage]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][1][filters][1][field]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">attribute_set_id</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][1][filters][1][field]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][1][filters][1][value]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">4</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][1][filters][1][value]</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/V1/products</stringProp>
          <stringProp name="HTTPSampler.method">GET</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">simple_products_for_edit_url_keys</stringProp>
            <stringProp name="RegexExtractor.regex">url_key\",\"value\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product ids" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">simple_product_for_edit_ids</stringProp>
            <stringProp name="RegexExtractor.regex">\"id\":(\d+),\"sku\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product titles" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">simple_product_for_edit_names</stringProp>
            <stringProp name="RegexExtractor.regex">name\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product skus" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">simple_product_for_edit_skus</stringProp>
            <stringProp name="RegexExtractor.regex">sku\":\"(.*?)\"</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
        </hashTree>
      </hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller: Prepare simple products for edit" enabled="true">
        <stringProp name="ForeachController.inputVal">simple_product_for_edit_ids</stringProp>
        <stringProp name="ForeachController.returnVal">simple_product_for_edit_id</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
      </ForeachController>
      <hashTree>
        <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter for edit" enabled="true">
          <stringProp name="CounterConfig.start">1</stringProp>
          <stringProp name="CounterConfig.end"/>
          <stringProp name="CounterConfig.incr">1</stringProp>
          <stringProp name="CounterConfig.name">simple_products_counter_for_edit</stringProp>
          <stringProp name="CounterConfig.format"/>
          <boolProp name="CounterConfig.per_user">false</boolProp>
        </CounterConfig>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: Collect simple product for edit" enabled="true">
          <stringProp name="BeanShellSampler.query">import java.util.ArrayList;
import java.util.HashMap;
import org.apache.commons.codec.binary.Base64;
ArrayList editProductList;

if (1 == Integer.parseInt(vars.get("simple_products_counter_for_edit"))) {
    editProductList = new ArrayList();
    props.put("simple_products_list_for_edit", editProductList);
} else {
    editProductList = props.get("simple_products_list_for_edit");
}

String productUrl = vars.get("request_protocol") + "://" + vars.get("host") + vars.get("base_path") + vars.get("simple_products_for_edit_url_keys_" + vars.get("simple_products_counter_for_edit"))+ vars.get("url_suffix");
encodedUrl = Base64.encodeBase64(productUrl.getBytes());
// Create product map
Map editProductMap = new HashMap();
editProductMap.put("id", vars.get("simple_product_for_edit_id"));
editProductMap.put("title", vars.get("simple_product_for_edit_names_" + vars.get("simple_products_counter_for_edit")));
editProductMap.put("sku", vars.get("simple_product_for_edit_skus_" + vars.get("simple_products_counter_for_edit")));
editProductMap.put("url_key", vars.get("simple_products_for_edit_url_keys_" + vars.get("simple_products_counter_for_edit")));
editProductMap.put("uenc", new String(encodedUrl));

// Collect products map in products list
editProductList.add(editProductMap);</stringProp>
          <stringProp name="BeanShellSampler.filename"/>
          <stringProp name="BeanShellSampler.parameters"/>
          <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
        </BeanShellSampler>
        <hashTree/>
      </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract categories (First Level)" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/setup/extract_categories.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get Categories Names and skus" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">path</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
            </elementProp>
            <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1/2/%</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
            </elementProp>
            <elementProp name="searchCriteria[filterGroups][0][filters][0][conditionType]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">like</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][conditionType]</stringProp>
            </elementProp>
            <elementProp name="searchCriteria[filterGroups][1][filters][0][field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">level</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">searchCriteria[filterGroups][1][filters][0][field]</stringProp>
            </elementProp>
            <elementProp name="searchCriteria[filterGroups][1][filters][0][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">searchCriteria[filterGroups][1][filters][0][value]</stringProp>
            </elementProp>
            <elementProp name="searchCriteria[pageSize]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${categories_count}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">searchCriteria[pageSize]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/categories/list</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">false</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="PostProcessor" enabled="true">
          <stringProp name="scriptLanguage">javascript</stringProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="cacheKey"/>
          <stringProp name="script">var data = JSON.parse(prev.getResponseDataAsString());

var categoryData = [], categoryNames = [], categoryUrls = [];

for (var i in data.items) {
	var cat = data.items[i], urlKey = getUrlKey(cat);
     categoryData.push({"id": cat.id, "name": cat.name, "url_key": urlKey, "children": cat.children.split(",")});
     categoryNames.push(cat.name);
     categoryUrls.push(urlKey);
 }

function getUrlKey(cat) {
    for (var i in cat.custom_attributes) {
        if (cat.custom_attributes[i].attribute_code == "url_key") {
            return cat.custom_attributes[i].value;	
          }
    }
    return "";
}

props.put("categories", categoryData);
props.put("category_url_keys_list", categoryUrls);
props.put("category_names_list",categoryNames);</stringProp>
        </JSR223PostProcessor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract categories id of last level" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/setup/extract_categories_id_of_last_level.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: Clear Admin Category Management properties" enabled="true">
        <stringProp name="BeanShellSampler.query">props.remove("admin_category_ids_list");</stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
      </BeanShellSampler>
      <hashTree/>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - API Get categories" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments">
              <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">children_count</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">0</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][1][filters][0][field]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">level</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][1][filters][0][field]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][1][filters][0][value]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">2</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][1][filters][0][value]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][1][filters][0][conditionType]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">gt</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][1][filters][0][conditionType]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[pageSize]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${adminCategoryCount}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[pageSize]</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/categories/list</stringProp>
          <stringProp name="HTTPSampler.method">GET</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">category_list_id</stringProp>
            <stringProp name="RegexExtractor.regex">\{\"id\":(\d+),</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">-1</stringProp>
          </RegexExtractor>
          <hashTree/>
        </hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Category Id" enabled="true">
          <stringProp name="ForeachController.inputVal">category_list_id</stringProp>
          <stringProp name="ForeachController.returnVal">category_id</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
        </ForeachController>
        <hashTree>
          <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Process categories ids" enabled="true">
            <stringProp name="BeanShellSampler.query">import java.util.ArrayList;

adminCategoryIdsList = props.get("admin_category_ids_list");
// If it is first iteration of cycle then recreate categories ids list
if (adminCategoryIdsList == null) {
    adminCategoryIdsList = new ArrayList();
    props.put("admin_category_ids_list", adminCategoryIdsList);
}
adminCategoryIdsList.add(vars.get("category_id"));</stringProp>
            <stringProp name="BeanShellSampler.filename"/>
            <stringProp name="BeanShellSampler.parameters"/>
            <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
          </BeanShellSampler>
          <hashTree/>
        </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Extract coupon codes" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/setup/extract_coupon_codes.jmx</stringProp>
    </TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - API Get coupon codes" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="searchCriteria[pageSize]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">10</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">searchCriteria[pageSize]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/coupons/search</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="PostProcessor" enabled="true">
          <stringProp name="scriptLanguage">javascript</stringProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="cacheKey"/>
          <stringProp name="script">var data = JSON.parse(prev.getResponseDataAsString());

var couponCodes = [];

for (var i in data.items) {
	var coupon = data.items[i];
	couponCodes.push({"coupon_id":coupon.coupon_id, "rule_id":coupon.rule_id, "code": coupon.code});
 }

props.put("coupon_codes", couponCodes);
</stringProp>
        </JSR223PostProcessor>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: Validate properties and count users" enabled="true">
      <stringProp name="BeanShellSampler.query">Boolean stopTestOnError (String error) {
    log.error(error);
    System.out.println(error);
    SampleResult.setStopTest(true);
    return false;
}

if (props.get("simple_products_list") == null) {
    return stopTestOnError("Cannot find simple products. Test stopped.");
}
if (props.get("simple_products_list_for_edit") == null) {
    return stopTestOnError("Cannot find simple products for edit. Test stopped.");
}
if (props.get("configurable_products_list") == null) {
    return stopTestOnError("Cannot find configurable products. Test stopped.");
}
if (props.get("configurable_products_list_for_edit") == null) {
    return stopTestOnError("Cannot find configurable products for edit. Test stopped.");
}
if (props.get("customer_emails_list") == null) {
    return stopTestOnError("Cannot find customer emails. Test stopped.");
}
if (props.get("category_url_keys_list") == null) {
    return stopTestOnError("Cannot find category url keys. Test stopped.");
}
if (props.get("category_names_list") == null) {
    return stopTestOnError("Cannot find category names. Test stopped.");
}
if (props.get("cms_pages") == null) {
    return stopTestOnError("Cannot find cms pages. Test stopped.");
}
</stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/validate_properties.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - WarmUp Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">qty</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/warmup_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  </hashTree>
  
        <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Frontend Pool" enabled="true">
            <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
            <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
                <boolProp name="LoopController.continue_forever">false</boolProp>
                <stringProp name="LoopController.loops">${loops}</stringProp>
            </elementProp>
            <stringProp name="ThreadGroup.num_threads">${frontendPoolUsers}</stringProp>
            <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
            <longProp name="ThreadGroup.start_time">1505803944000</longProp>
            <longProp name="ThreadGroup.end_time">1505803944000</longProp>
            <boolProp name="ThreadGroup.scheduler">false</boolProp>
            <stringProp name="ThreadGroup.duration"/>
            <stringProp name="ThreadGroup.delay"/>
        <stringProp name="TestPlan.comments">tool/fragments/_system/thread_group.jmx</stringProp></ThreadGroup>
        <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Cache hit miss" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">var cacheHitPercent = vars.get("cache_hits_percentage");

if (
	cacheHitPercent &lt; 100 &amp;&amp;
	sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
	doCache();
}

function doCache(){
	var random = Math.random() * 100;
	if (cacheHitPercent &lt; random) {
		sampler.setPath(sampler.getPath() + "?cacheModifier=" + Math.random().toString(36).substring(2, 13));
	}
}
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/cache_hit_miss.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Catalog Browsing By Customer" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${browseCatalogByCustomerPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Catalog Browsing By Customer");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customerUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Login Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/login/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_login_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="637394530">&lt;title&gt;Customer Login&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="send" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">send</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/loginPost/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1312950388">&lt;title&gt;My Account&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">addressId</stringProp>
        <stringProp name="RegexExtractor.regex">customer/address/edit/id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert addressId extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">addressId</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Customer Private Data" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Simple Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Configurable Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">You are signed out.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Catalog Browsing By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${browseCatalogByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Catalog Browsing By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Simple Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Configurable Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Site Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${siteSearchPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Site Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Search Terms" enabled="true">
      <stringProp name="filename">${files_folder}search_terms.csv</stringProp>
      <stringProp name="fileEncoding">UTF-8</stringProp>
      <stringProp name="variableNames"/>
      <stringProp name="delimiter">,</stringProp>
      <boolProp name="quotedData">false</boolProp>
      <boolProp name="recycle">true</boolProp>
      <boolProp name="stopThread">false</boolProp>
      <stringProp name="shareMode">shareMode.thread</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/search_terms.jmx</stringProp></CSVDataSet>
    <hashTree/>
  
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Cache hit miss" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">var cacheHitPercent = vars.get("cache_hits_percentage");

if (
	cacheHitPercent &lt; 100 &amp;&amp;
	sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
	doCache();
}

function doCache(){
	var random = Math.random() * 100;
	if (cacheHitPercent &lt; random) {
		sampler.setPath(sampler.getPath() + "?cacheModifier=" + Math.random().toString(36).substring(2, 13));
	}
}
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/cache_hit_miss.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Quick Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${searchQuickPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Quick Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="q" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">q</stringProp>
            <stringProp name="Argument.value">${searchTerm}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalogsearch/result/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/search_quick.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="56511661">Search results for: </stringProp>
          <stringProp name="1533671447">&lt;span class="toolbar-number"&gt;\d&lt;\/span&gt; Items|Items &lt;span class="toolbar-number"&gt;1</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="(?:http|https)://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
        <stringProp name="RegexExtractor.template">$2$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: isPageCacheable" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">isPageCacheable</stringProp>
        <stringProp name="RegexExtractor.regex">catalogsearch/searchTermsLog/save</stringProp>
        <stringProp name="RegexExtractor.template">$0$</stringProp>
        <stringProp name="RegexExtractor.default">0</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
        <stringProp name="IfController.condition">"${isPageCacheable}" != "0"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      <stringProp name="TestPlan.comments">tool/fragments/ce/search/if_page_cacheable_controller.jmx</stringProp></IfController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Terms Log" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="q" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">q</stringProp>
              <stringProp name="Argument.value">${searchTerm}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}catalogsearch/searchTermsLog/save/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/search/search_terms_log_save.jmx</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-547797305">"success":true</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">
foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr"));

if (foundProducts &gt; 3) {
	foundProducts = 3;
}

vars.put("foundProducts", String.valueOf(foundProducts));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/set_found_items.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Searched Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${foundProducts}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/search/searched_products_setup.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
product = vars.get("product_url_keys_"+number);

vars.put("product_url_key", product);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Quick Search With Filtration" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${searchQuickFilterPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Quick Search With Filtration");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="q" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">q</stringProp>
            <stringProp name="Argument.value">${searchTerm}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol"/>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalogsearch/result/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/search_quick_filter.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="56511661">Search results for: </stringProp>
          <stringProp name="1533671447">Items &lt;span class="toolbar-number"&gt;1</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract number of attribute 1 options" enabled="true">
        <stringProp name="XPathExtractor.default">0</stringProp>
        <stringProp name="XPathExtractor.refname">attribute_1_options_count</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">count((//div[@class="filter-options-content"])[1]//li[@class="item"])</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract number of attribute 2 options" enabled="true">
        <stringProp name="XPathExtractor.default">0</stringProp>
        <stringProp name="XPathExtractor.refname">attribute_2_options_count</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">count((//div[@class="filter-options-content"])[2]//li[@class="item"])</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract filter link from layered navigation" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">attribute_1_filter_url</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">((//div[@class="filter-options-content"])[1]//li[@class="item"]//a)[1]/@href</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract product url keys" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
        <stringProp name="RegexExtractor.template">$2$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: isPageCacheable" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">isPageCacheable</stringProp>
        <stringProp name="RegexExtractor.regex">catalogsearch/searchTermsLog/save</stringProp>
        <stringProp name="RegexExtractor.template">$0$</stringProp>
        <stringProp name="RegexExtractor.default">0</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
        <stringProp name="IfController.condition">"${isPageCacheable}" != "0"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      <stringProp name="TestPlan.comments">tool/fragments/ce/search/if_page_cacheable_controller.jmx</stringProp></IfController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Terms Log" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="q" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">q</stringProp>
              <stringProp name="Argument.value">${searchTerm}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}catalogsearch/searchTermsLog/save/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/search/search_terms_log_save.jmx</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-547797305">"success":true</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Attribute 1 present in layered navigation" enabled="true">
      <stringProp name="IfController.condition">${attribute_1_options_count} &gt; 0</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/search_quick_filter-first-attribute.jmx</stringProp></IfController>
    <hashTree>
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Search Url 2" enabled="true">
        <stringProp name="BeanShellSampler.query">vars.put("search_url", vars.get("attribute_1_filter_url"));</stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
      </BeanShellSampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Filter by Attribute 1" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol"/>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${attribute_1_filter_url}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="56511661">Search results for: </stringProp>
            <stringProp name="1420634794">&lt;span class="toolbar-number"&gt;[1-9]+</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract number of attribute 2 options" enabled="true">
          <stringProp name="XPathExtractor.default">0</stringProp>
          <stringProp name="XPathExtractor.refname">attribute_2_options_count</stringProp>
          <stringProp name="XPathExtractor.xpathQuery">count((//div[@class="filter-options-content"])[2]//li[@class="item"])</stringProp>
          <boolProp name="XPathExtractor.validate">false</boolProp>
          <boolProp name="XPathExtractor.tolerant">true</boolProp>
          <boolProp name="XPathExtractor.namespace">false</boolProp>
        </XPathExtractor>
        <hashTree/>
        <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract filter link from layered navigation" enabled="true">
          <stringProp name="XPathExtractor.default"/>
          <stringProp name="XPathExtractor.refname">attribute_2_filter_url</stringProp>
          <stringProp name="XPathExtractor.xpathQuery">((//div[@class="filter-options-content"])[2]//li[@class="item"]//a)[1]/@href</stringProp>
          <boolProp name="XPathExtractor.validate">false</boolProp>
          <boolProp name="XPathExtractor.tolerant">true</boolProp>
          <boolProp name="XPathExtractor.namespace">false</boolProp>
        </XPathExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract product url keys" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
          <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">-1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Attribute 2 present in layered navigation" enabled="true">
      <stringProp name="IfController.condition">${attribute_2_options_count} &gt; 0</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/search_quick_filter-second-attribute.jmx</stringProp></IfController>
    <hashTree>
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Search Ul 3" enabled="true">
        <stringProp name="BeanShellSampler.query">vars.put("search_url", vars.get("attribute_2_filter_url"));</stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
      </BeanShellSampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Filter by Attribute 2" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol"/>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${attribute_2_filter_url}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="56511661">Search results for: </stringProp>
            <stringProp name="1420634794">&lt;span class="toolbar-number"&gt;[1-9]+</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract product url keys" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
          <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">-1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">
foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr"));

if (foundProducts &gt; 3) {
	foundProducts = 3;
}

vars.put("foundProducts", String.valueOf(foundProducts));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/set_found_items.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Searched Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${foundProducts}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/search/searched_products_setup.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
product = vars.get("product_url_keys_"+number);

vars.put("product_url_key", product);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Advanced Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${searchAdvancedPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Advanced Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  

    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Advanced Search" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol"/>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalogsearch/advanced/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/open_advanced_search_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="921122077">&lt;title&gt;Advanced Search&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract attribute name" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">attribute_name</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">(//select[@class="multiselect"])[last()]/@name</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract attribute options count" enabled="true">
        <stringProp name="XPathExtractor.default">0</stringProp>
        <stringProp name="XPathExtractor.refname">attribute_options_count</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">count((//select[@class="multiselect"])[last()]/option)</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract attribute value" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">attribute_value</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">((//select[@class="multiselect"])[last()]/option)[1]/@value</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
    </hashTree>


  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="name" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">name</stringProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="sku" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">sku</stringProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="description" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">description</stringProp>
            <stringProp name="Argument.value">${searchTerm}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="short_description" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">short_description</stringProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="price%5Bfrom%5D" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">price%5Bfrom%5D</stringProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="price%5Bto%5D" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">price%5Bto%5D</stringProp>
            <stringProp name="Argument.value">${priceTo}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <!-- Should be fixed in MAGETWO-80420 -->
          <!--<elementProp name="${attribute_name}" elementType="HTTPArgument">-->
            <!--<boolProp name="HTTPArgument.always_encode">true</boolProp>-->
            <!--<stringProp name="Argument.value">${attribute_value}</stringProp>-->
            <!--<stringProp name="Argument.metadata">=</stringProp>-->
            <!--<boolProp name="HTTPArgument.use_equals">true</boolProp>-->
            <!--<stringProp name="Argument.name">${attribute_name}</stringProp>-->
          <!--</elementProp>-->
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalogsearch/advanced/result/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/search_advanced.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1851531284">items&lt;/strong&gt; were found using the following search criteria</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="(?:http|https)://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
        <stringProp name="RegexExtractor.template">$2$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">
foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr"));

if (foundProducts &gt; 3) {
	foundProducts = 3;
}

vars.put("foundProducts", String.valueOf(foundProducts));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/set_found_items.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Searched Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${foundProducts}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/search/searched_products_setup.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
product = vars.get("product_url_keys_"+number);

vars.put("product_url_key", product);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Add To Cart By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${addToCartByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Add To Cart By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Simple Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">qty</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Configurable Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="SetUp - Get Configurable Product Options" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_configurable_product_options.jmx</stringProp></LoopController>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">*/*</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
          <stringProp name="VAR">admin_token</stringProp>
          <stringProp name="JSONPATH">$</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="484395188">^.{10,}$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_token</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Authorization</stringProp>
            <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Options" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${product_sku}/options/all</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
          <stringProp name="VAR">attribute_ids</stringProp>
          <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
          <stringProp name="VAR">option_values</stringProp>
          <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">qty</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
                <boolProp name="resetInterpreter">false</boolProp>
                <stringProp name="parameters"/>
                <stringProp name="filename"/>
                <stringProp name="script">
                    try {
                    attribute_ids = vars.get("attribute_ids");
                    option_values = vars.get("option_values");
                    attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
                    option_values = option_values.replace("[","").replace("]","").replace("\"", "");
                    attribute_ids_array = attribute_ids.split(",");
                    option_values_array = option_values.split(",");
                    args = ctx.getCurrentSampler().getArguments();
                    it = args.iterator();
                    while (it.hasNext()) {
                        argument = it.next();
                        if (argument.getStringValue().contains("${")) {
                            args.removeArgument(argument.getName());
                        }
                    }
                    for (int i = 0; i &lt; attribute_ids_array.length; i++) {
                        ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]);
                    }
                    } catch (Exception e) {
                        log.error("eror&#x2026;", e);
                    }
                </stringProp>
              <stringProp name="TestPlan.comments">tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx</stringProp></BeanShellPreProcessor>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Add to Wishlist" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${addToWishlistPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Add to Wishlist");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customerUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Login Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/login/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_login_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="637394530">&lt;title&gt;Customer Login&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="send" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">send</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/loginPost/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1312950388">&lt;title&gt;My Account&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">addressId</stringProp>
        <stringProp name="RegexExtractor.regex">customer/address/edit/id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert addressId extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">addressId</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Customer Private Data" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Produts to Wishlist" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">5</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Wishlist" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="uenc" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${product_uenc}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">uenc</stringProp>
            </elementProp>
            <elementProp name="product" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}wishlist/index/add/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/wishlist/add_to_wishlist.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1907714722">&lt;title&gt;My Wish List&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">wishListItems</stringProp>
          <stringProp name="RegexExtractor.regex">data-post-remove='\{"action":"(.+)\/wishlist\\/index\\/remove\\/","data":\{"item":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">-1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Wishlist Section ${_counter}" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="sections" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">wishlist,messages</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sections</stringProp>
            </elementProp>
            <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
            </elementProp>
            <elementProp name="_" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">_</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/wishlist/load_wishlist_section.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1865430343">{"wishlist":{"counter":"</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
        <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
          <stringProp name="ConstantTimer.delay">${wishlistDelay}*1000</stringProp>
        </ConstantTimer>
        <hashTree/>
      </hashTree>
  </hashTree>
  
    <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller: Clear Wishlist" enabled="true">
      <stringProp name="ForeachController.inputVal">wishListItems</stringProp>
      <stringProp name="ForeachController.returnVal">wishListItem</stringProp>
      <boolProp name="ForeachController.useSeparator">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/wishlist/clear_wishlist.jmx</stringProp></ForeachController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end">5</stringProp>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Clear Wishlist ${counter}" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="item" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${wishListItem}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">item</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}wishlist/index/remove/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">You are signed out.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Compare Products" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${compareProductsPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Compare Products");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_compare/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Random Product Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">random_product_compare_id</stringProp>
        <stringProp name="RegexExtractor.regex">catalog\\/product_compare\\/add\\/\",\"data\":\{\"product\":\"([0-9]+)\"</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Random Product Id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">random_product_compare_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Simple Products to Compare" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Comparison Add" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="uenc" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_uenc}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">uenc</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalog/product_compare/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_compare/product_compare_add.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Compare Product Section" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">compare-products,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_compare/customer_section_load_product_compare_add.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"compare-products\":{\"count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Configurable Products to Compare" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Comparison Add" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="uenc" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_uenc}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">uenc</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalog/product_compare/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_compare/product_compare_add.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Compare Product Section" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">compare-products,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_compare/customer_section_load_product_compare_add.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"compare-products\":{\"count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Compare Products" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalog/product_compare/index/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_compare/compare_products.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  
    <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Product Compare - Pause" enabled="true">
      <intProp name="ActionProcessor.action">1</intProp>
      <intProp name="ActionProcessor.target">0</intProp>
      <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${productCompareDelay}*1000))}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_compare/compare_products_pause.jmx</stringProp></TestAction>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Compare Products Clear" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalog/product_compare/clear</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_compare/compare_products_clear.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Checkout By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${checkoutByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Checkout By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Simple Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">qty</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Configurable Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="SetUp - Get Configurable Product Options" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_configurable_product_options.jmx</stringProp></LoopController>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">*/*</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
          <stringProp name="VAR">admin_token</stringProp>
          <stringProp name="JSONPATH">$</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="484395188">^.{10,}$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_token</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Authorization</stringProp>
            <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Options" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${product_sku}/options/all</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
          <stringProp name="VAR">attribute_ids</stringProp>
          <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
          <stringProp name="VAR">option_values</stringProp>
          <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">qty</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
                <boolProp name="resetInterpreter">false</boolProp>
                <stringProp name="parameters"/>
                <stringProp name="filename"/>
                <stringProp name="script">
                    try {
                    attribute_ids = vars.get("attribute_ids");
                    option_values = vars.get("option_values");
                    attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
                    option_values = option_values.replace("[","").replace("]","").replace("\"", "");
                    attribute_ids_array = attribute_ids.split(",");
                    option_values_array = option_values.split(",");
                    args = ctx.getCurrentSampler().getArguments();
                    it = args.iterator();
                    while (it.hasNext()) {
                        argument = it.next();
                        if (argument.getStringValue().contains("${")) {
                            args.removeArgument(argument.getName());
                        }
                    }
                    for (int i = 0; i &lt; attribute_ids_array.length; i++) {
                        ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]);
                    }
                    } catch (Exception e) {
                        log.error("eror&#x2026;", e);
                    }
                </stringProp>
              <stringProp name="TestPlan.comments">tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx</stringProp></BeanShellPreProcessor>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Checkout" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Get region data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">
      vars.put("alabama_region_id", props.get("alabama_region_id"));
      vars.put("california_region_id", props.get("california_region_id"));
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_region_data.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout start" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_start.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1403911775">&lt;title&gt;Checkout&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-179817969">&lt;title&gt;Shopping Cart&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Cart Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">cart_id</stringProp>
        <stringProp name="RegexExtractor.regex">"quoteData":{"entity_id":"([^'"]+)",</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Cart Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">cart_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Email Available" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"customerEmail":"test@example.com"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/customers/isEmailAvailable</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_email_available.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="3569038">true</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Estimate Shipping Methods" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"address":{"country_id":"US","postcode":"95630"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/estimate-shipping-methods</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_estimate_shipping_methods_with_postal_code.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1224567411">"available":true</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Billing/Shipping Information" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"addressInformation":{"shipping_address":{"countryId":"US","regionId":"${california_region_id}","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/shipping-information</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_billing_shipping_information.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1494218646">{"payment_methods":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Payment Info/Place Order" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"cartId":"${cart_id}","email":"test@example.com","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"countryId":"US","regionId":"${california_region_id}","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/payment-information</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_payment_info_place_order.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-297987887">"[0-9]+"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">order_id</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">order_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout success" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/onepage/success/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_success.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="494863233">Thank you for your purchase!</stringProp>
          <stringProp name="1635682758">Your order # is</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Checkout A Large Bulk Of Products By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${checkoutALargeBulkOfProductsByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Checkout A Large Bulk Of Products By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Of Simple And Configurable Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_total_simple_and_configurable_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalSimpleProductsAdded", "0");
vars.put("totalConfigurableProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Bulk Of Simple Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
simpleProductsAdded = Integer.parseInt(vars.get("totalSimpleProductsAdded"));
lastSimpleProduct = Integer.parseInt(vars.get("numberOfRelatedSimpleProductsInTheCart")) - 1;

product = props.get("simple_products_list").get(lastSimpleProduct);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));

simpleProductsAdded = simpleProductsAdded + 1;
vars.put("totalSimpleProductsAdded", String.valueOf(simpleProductsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup_large_bulk_of_products.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Bulk Of Simple Products to Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">qty</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Add Related Product Argument" enabled="true">
        <stringProp name="scriptLanguage">groovy</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey">true</stringProp>
                <stringProp name="script">
                    numberOfSimpleProducts = Integer.parseInt(vars.get("numberOfRelatedSimpleProductsInTheCart")) - 1;
                    def relatedProductIds = props.get('simple_products_list').take(numberOfSimpleProducts).inject('') {acc, prod -&gt; acc + prod.get("id") + ',' };
                    sampler.addArgument('related_product', relatedProductIds);

                    simpleProductsAdded = Integer.parseInt(vars.get("totalSimpleProductsAdded"));
                    simpleProductsAdded = simpleProductsAdded + numberOfSimpleProducts;
                    vars.put("totalSimpleProductsAdded", String.valueOf(simpleProductsAdded));

                    productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
                    productsAdded = productsAdded + numberOfSimpleProducts;
                    vars.put("totalProductsAdded", String.valueOf(productsAdded));
                </stringProp>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/related_products_add_to_cart_preprocessor.jmx</stringProp></JSR223PreProcessor>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section - Total: ${totalProductsAdded}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/load_cart_section_with_total_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Additional Configurable Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
configurableProductsAdded = Integer.parseInt(vars.get("totalConfigurableProductsAdded"));

product = props.get("configurable_products_list").get(configurableProductsAdded);

vars.put("product_number", configurableProductsAdded.toString());
vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));

configurableProductsAdded = configurableProductsAdded + 1;
vars.put("totalConfigurableProductsAdded", String.valueOf(configurableProductsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup_large_number_of_products.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="SetUp - Get Configurable Product Options" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_configurable_product_options.jmx</stringProp></LoopController>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">*/*</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
          <stringProp name="VAR">admin_token</stringProp>
          <stringProp name="JSONPATH">$</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="484395188">^.{10,}$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_token</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Authorization</stringProp>
            <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Options" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${product_sku}/options/all</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
          <stringProp name="VAR">attribute_ids</stringProp>
          <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
          <stringProp name="VAR">option_values</stringProp>
          <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart - Total: ${totalProductsAdded}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">qty</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
                <boolProp name="resetInterpreter">false</boolProp>
                <stringProp name="parameters"/>
                <stringProp name="filename"/>
                <stringProp name="script">
                    try {
                    attribute_ids = vars.get("attribute_ids");
                    option_values = vars.get("option_values");
                    attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
                    option_values = option_values.replace("[","").replace("]","").replace("\"", "");
                    attribute_ids_array = attribute_ids.split(",");
                    option_values_array = option_values.split(",");
                    args = ctx.getCurrentSampler().getArguments();
                    it = args.iterator();
                    while (it.hasNext()) {
                        argument = it.next();
                        if (argument.getStringValue().contains("${")) {
                            args.removeArgument(argument.getName());
                        }
                    }
                    for (int i = 0; i &lt; attribute_ids_array.length; i++) {
                        ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]);
                    }
                    } catch (Exception e) {
                        log.error("eror&#x2026;", e);
                    }
                </stringProp>
              <stringProp name="TestPlan.comments">tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx</stringProp></BeanShellPreProcessor>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section - Total: ${totalProductsAdded}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/load_cart_section_with_total_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Open Cart" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Cart" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol"/>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}checkout/cart/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/open_cart.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Cart Opened" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-179817969">&lt;title&gt;Shopping Cart&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-350323027">\"items_count\":\"${totalProductsAdded}\"</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Open Cart 2" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Cart 2" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol"/>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}checkout/cart/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/open_cart.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Cart Opened" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-179817969">&lt;title&gt;Shopping Cart&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-350323027">\"items_count\":\"${totalProductsAdded}\"</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Checkout" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Get region data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">
      vars.put("alabama_region_id", props.get("alabama_region_id"));
      vars.put("california_region_id", props.get("california_region_id"));
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_region_data.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout start" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_start.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1403911775">&lt;title&gt;Checkout&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-179817969">&lt;title&gt;Shopping Cart&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Cart Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">cart_id</stringProp>
        <stringProp name="RegexExtractor.regex">"quoteData":{"entity_id":"([^'"]+)",</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Cart Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">cart_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Email Available" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"customerEmail":"test@example.com"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/customers/isEmailAvailable</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_email_available.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="3569038">true</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Estimate Shipping Methods" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"address":{"country_id":"US","postcode":"95630"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/estimate-shipping-methods</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_estimate_shipping_methods_with_postal_code.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1224567411">"available":true</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Billing/Shipping Information" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"addressInformation":{"shipping_address":{"countryId":"US","regionId":"${california_region_id}","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/shipping-information</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_billing_shipping_information.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1494218646">{"payment_methods":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Payment Info/Place Order" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"cartId":"${cart_id}","email":"test@example.com","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"countryId":"US","regionId":"${california_region_id}","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/payment-information</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_payment_info_place_order.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-297987887">"[0-9]+"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">order_id</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">order_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout success" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/onepage/success/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_success.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="494863233">Thank you for your purchase!</stringProp>
          <stringProp name="1635682758">Your order # is</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Checkout By Customer" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${checkoutByCustomerPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Checkout By Customer");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customerUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Login Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/login/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_login_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="637394530">&lt;title&gt;Customer Login&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="send" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">send</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/loginPost/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1312950388">&lt;title&gt;My Account&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">addressId</stringProp>
        <stringProp name="RegexExtractor.regex">customer/address/edit/id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert addressId extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">addressId</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Customer Private Data" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Simple Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">qty</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Configurable Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="SetUp - Get Configurable Product Options" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_configurable_product_options.jmx</stringProp></LoopController>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">*/*</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
          <stringProp name="VAR">admin_token</stringProp>
          <stringProp name="JSONPATH">$</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="484395188">^.{10,}$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_token</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Authorization</stringProp>
            <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Options" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${product_sku}/options/all</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
          <stringProp name="VAR">attribute_ids</stringProp>
          <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
          <stringProp name="VAR">option_values</stringProp>
          <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">qty</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
                <boolProp name="resetInterpreter">false</boolProp>
                <stringProp name="parameters"/>
                <stringProp name="filename"/>
                <stringProp name="script">
                    try {
                    attribute_ids = vars.get("attribute_ids");
                    option_values = vars.get("option_values");
                    attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
                    option_values = option_values.replace("[","").replace("]","").replace("\"", "");
                    attribute_ids_array = attribute_ids.split(",");
                    option_values_array = option_values.split(",");
                    args = ctx.getCurrentSampler().getArguments();
                    it = args.iterator();
                    while (it.hasNext()) {
                        argument = it.next();
                        if (argument.getStringValue().contains("${")) {
                            args.removeArgument(argument.getName());
                        }
                    }
                    for (int i = 0; i &lt; attribute_ids_array.length; i++) {
                        ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]);
                    }
                    } catch (Exception e) {
                        log.error("eror&#x2026;", e);
                    }
                </stringProp>
              <stringProp name="TestPlan.comments">tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx</stringProp></BeanShellPreProcessor>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Checkout" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Get region data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">
      vars.put("alabama_region_id", props.get("alabama_region_id"));
      vars.put("california_region_id", props.get("california_region_id"));
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_region_data.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout start" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/customer_checkout/checkout_start.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1403911775">&lt;title&gt;Checkout&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-179817969">&lt;title&gt;Shopping Cart&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Cart Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">cart_id</stringProp>
        <stringProp name="RegexExtractor.regex">"quoteData":{"entity_id":"([^'"]+)",</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">address_id</stringProp>
        <stringProp name="RegexExtractor.regex">"default_billing":"([^'"]+)",</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Customer Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">customer_id</stringProp>
        <stringProp name="RegexExtractor.regex">"customer_id":([^'",]+),</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Cart Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">cart_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Address Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="576002869">[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">address_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Customer Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="576002869">[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">customer_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Estimate Shipping Methods" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"addressId":"${addressId}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/mine/estimate-shipping-methods-by-address-id</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/customer_checkout/checkout_estimate_shipping_methods.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1224567411">"available":true</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Billing/Shipping Information" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"addressInformation":{"shipping_address":{"customerAddressId":"${address_id}","countryId":"US","regionId":"${alabama_region_id}","regionCode":"AL","region":"Alabama","customerId":"${customer_id}","street":["123 Freedom Blvd. #123"],"telephone":"022-333-4455","postcode":"123123","city":"Fayetteville","firstname":"Anthony","lastname":"Nealy"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/mine/shipping-information</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/customer_checkout/checkout_billing_shipping_information.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${host}${base_path}checkout/onepage</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-740937264">{"payment_methods"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Payment Info/Place Order" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"cartId":"${cart_id}","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"customerAddressId":"${address_id}","countryId":"US","regionId":"${alabama_region_id}","regionCode":"AL","region":"Alabama","customerId":"${customer_id}","street":["123 Freedom Blvd. #123"],"telephone":"022-333-4455","postcode":"123123","city":"Fayetteville","firstname":"Anthony","lastname":"Nealy"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/mine/payment-information</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/customer_checkout/checkout_payment_info_place_order.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${host}${base_path}checkout/onepage</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8 </stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert order number" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-297987887">"[0-9]+"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout success" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/onepage/success/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/customer_checkout/checkout_success.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="494863233">Thank you for your purchase!</stringProp>
          <stringProp name="-1590086334">Your order number is</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">You are signed out.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Clear Cookie" enabled="true">
      <boolProp name="resetInterpreter">false</boolProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="script">curSampler = ctx.getCurrentSampler();
if(curSampler.getName().contains("Checkout success")) {
	manager = curSampler.getCookieManager();
	manager.clear();
}
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/customer_checkout/checkout_clear_cookie.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Product Review By Customer" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${reviewByCustomerPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Product Review By Customer");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customerUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Login Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/login/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_login_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="637394530">&lt;title&gt;Customer Login&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="send" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">send</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/loginPost/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1312950388">&lt;title&gt;My Account&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">addressId</stringProp>
        <stringProp name="RegexExtractor.regex">customer/address/edit/id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert addressId extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">addressId</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Customer Private Data" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Review Simple Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product 1 Rate and Review" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="ratings[1]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">3</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">ratings[1]</stringProp>
          </elementProp>
          <elementProp name="validate_rating" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">validate_rating</stringProp>
          </elementProp>
          <elementProp name="nickname" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">FirstName</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">nickname</stringProp>
          </elementProp>
          <elementProp name="title" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Some Review Title</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">title</stringProp>
          </elementProp>
          <elementProp name="detail" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Some Review Text</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">detail</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}review/product/post/id/${product_id}</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_review/product_review.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1606201635">HTTP/1.1 200 OK</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_headers</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">16</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Review Section" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">review,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_review/load_review.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  
    <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Product Rating and Review - Pause" enabled="true">
      <intProp name="ActionProcessor.action">1</intProp>
      <intProp name="ActionProcessor.target">0</intProp>
      <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${reviewDelay}*1000))}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_review/product_review_pause.jmx</stringProp></TestAction>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">You are signed out.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Add To Cart By Customer" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${addToCartByCustomerPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Add To Cart By Customer");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customerUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Login Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/login/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_login_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="637394530">&lt;title&gt;Customer Login&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="send" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">send</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/loginPost/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1312950388">&lt;title&gt;My Account&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">addressId</stringProp>
        <stringProp name="RegexExtractor.regex">customer/address/edit/id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert addressId extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">addressId</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Customer Private Data" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Simple Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">qty</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Configurable Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="SetUp - Get Configurable Product Options" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_configurable_product_options.jmx</stringProp></LoopController>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">*/*</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
          <stringProp name="VAR">admin_token</stringProp>
          <stringProp name="JSONPATH">$</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="484395188">^.{10,}$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_token</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Authorization</stringProp>
            <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Options" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${product_sku}/options/all</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
          <stringProp name="VAR">attribute_ids</stringProp>
          <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
          <stringProp name="VAR">option_values</stringProp>
          <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">qty</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
                <boolProp name="resetInterpreter">false</boolProp>
                <stringProp name="parameters"/>
                <stringProp name="filename"/>
                <stringProp name="script">
                    try {
                    attribute_ids = vars.get("attribute_ids");
                    option_values = vars.get("option_values");
                    attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
                    option_values = option_values.replace("[","").replace("]","").replace("\"", "");
                    attribute_ids_array = attribute_ids.split(",");
                    option_values_array = option_values.split(",");
                    args = ctx.getCurrentSampler().getArguments();
                    it = args.iterator();
                    while (it.hasNext()) {
                        argument = it.next();
                        if (argument.getStringValue().contains("${")) {
                            args.removeArgument(argument.getName());
                        }
                    }
                    for (int i = 0; i &lt; attribute_ids_array.length; i++) {
                        ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]);
                    }
                    } catch (Exception e) {
                        log.error("eror&#x2026;", e);
                    }
                </stringProp>
              <stringProp name="TestPlan.comments">tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx</stringProp></BeanShellPreProcessor>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Make Cart Empty" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Cart" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol"/>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}checkout/cart/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/open_cart.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Cart Opened" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-179817969">&lt;title&gt;Shopping Cart&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract cart qty inputs" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">cart_items_qty_inputs</stringProp>
          <stringProp name="RegexExtractor.regex">name="cart\[([^\[\]]+)\]\[qty\]"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">-1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
    
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Remove Items From Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${cart_items_qty_inputs_matchNr}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data for Removing from Cart" enabled="true">
      <stringProp name="BeanShellSampler.query">
id = vars.get("_counter");
vars.put("uenc", vars.get("cart_items_uencs_" + id));
vars.put("item_id", vars.get("cart_items_qty_inputs_" + id));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/remove_item_from_cart_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Remove item" enabled="true">
           <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
             <collectionProp name="Arguments.arguments">
               <elementProp name="form_key" elementType="HTTPArgument">
                 <boolProp name="HTTPArgument.always_encode">true</boolProp>
                 <stringProp name="Argument.value">${form_key}</stringProp>
                 <stringProp name="Argument.metadata">=</stringProp>
                 <boolProp name="HTTPArgument.use_equals">true</boolProp>
                 <stringProp name="Argument.name">form_key</stringProp>
               </elementProp>
               <elementProp name="uenc" elementType="HTTPArgument">
                 <boolProp name="HTTPArgument.always_encode">true</boolProp>
                 <stringProp name="Argument.value">${uenc}</stringProp>
                 <stringProp name="Argument.metadata">=</stringProp>
                 <boolProp name="HTTPArgument.use_equals">true</boolProp>
                 <stringProp name="Argument.name">uenc</stringProp>
               </elementProp>
               <elementProp name="id" elementType="HTTPArgument">
                 <boolProp name="HTTPArgument.always_encode">false</boolProp>
                 <stringProp name="Argument.value">${item_id}</stringProp>
                 <stringProp name="Argument.metadata">=</stringProp>
                 <boolProp name="HTTPArgument.use_equals">true</boolProp>
                 <stringProp name="Argument.name">id</stringProp>
               </elementProp>
             </collectionProp>
           </elementProp>
           <stringProp name="HTTPSampler.domain"/>
           <stringProp name="HTTPSampler.port"/>
           <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
           <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
           <stringProp name="HTTPSampler.protocol"/>
           <stringProp name="HTTPSampler.contentEncoding"/>
           <stringProp name="HTTPSampler.path">${base_path}checkout/cart/delete/</stringProp>
           <stringProp name="HTTPSampler.method">POST</stringProp>
           <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
           <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
           <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
           <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
           <boolProp name="HTTPSampler.monitor">false</boolProp>
           <stringProp name="HTTPSampler.embedded_url_re"/>
         <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/remove_item_from_cart.jmx</stringProp></HTTPSamplerProxy>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check Cart is Empty" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/check_cart_is_empty.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":0</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">You are signed out.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Account management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${accountManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Account management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customerUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Login Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/login/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_login_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="637394530">&lt;title&gt;Customer Login&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="send" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">send</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/loginPost/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1312950388">&lt;title&gt;My Account&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">addressId</stringProp>
        <stringProp name="RegexExtractor.regex">customer/address/edit/id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert addressId extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">addressId</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Customer Private Data" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="My Orders" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}sales/order/history/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/my_orders.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="220295440">&lt;title&gt;My Orders&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract orderId" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">orderId</stringProp>
        <stringProp name="RegexExtractor.regex">sales/order/view/order_id/(\d+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default">NOT_FOUND</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Orders Controller" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/if_orders.jmx</stringProp>
      <stringProp name="IfController.condition">"${orderId}" != "NOT_FOUND"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    </IfController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View Order" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}sales/order/view/order_id/${orderId}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1956770127">&lt;title&gt;Order #</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract shipment tab" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">shipment_tab</stringProp>
          <stringProp name="RegexExtractor.regex">sales/order/shipment/order_id/(\d+)..Order Shipments</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default">NOT_FOUND</stringProp>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Shipments Controller" enabled="true">
        <stringProp name="TestPlan.comments">May not have shipped</stringProp>
        <stringProp name="IfController.condition">"${shipment_tab}" != "NOT_FOUND"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      </IfController>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View Order Shipments" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments"/>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}sales/order/shipment/order_id/${orderId}</stringProp>
          <stringProp name="HTTPSampler.method">GET</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="120578727">Track this shipment</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">2</intProp>
          </ResponseAssertion>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract popup link" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">popupLink</stringProp>
            <stringProp name="RegexExtractor.regex">popupWindow": {"windowURL":"([^'"]+)",</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
          </RegexExtractor>
          <hashTree/>
        </hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Track Shipment" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments"/>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${popupLink}</stringProp>
          <stringProp name="HTTPSampler.method">GET</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="-760430210">&lt;title&gt;Tracking Information&lt;/title&gt;</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">2</intProp>
          </ResponseAssertion>
          <hashTree/>
        </hashTree>
      </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="My Downloadable Products" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}downloadable/customer/products</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/my_downloadable_products.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="358050505">&lt;title&gt;My Downloadable Products&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract orderId" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">orderId</stringProp>
        <stringProp name="RegexExtractor.regex">sales/order/view/order_id/(\d+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default">NOT_FOUND</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract linkId" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">linkId</stringProp>
        <stringProp name="RegexExtractor.regex">downloadable/download/link/id/(\d+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Downloadables Controller" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/if_downloadables.jmx</stringProp>
      <stringProp name="IfController.condition">"${orderId}" != "NOT_FOUND"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    </IfController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View Downloadable Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}sales/order/view/order_id/${orderId}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/view_downloadable_products.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1956770127">&lt;title&gt;Order #</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Download Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}downloadable/download/link/id/${linkId}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/download_product.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="My Wish List" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}wishlist</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1907714722">&lt;title&gt;My Wish List&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract wishlistId" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">wishlistId</stringProp>
        <stringProp name="RegexExtractor.regex">wishlist/index/update/wishlist_id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/my_wish_list.jmx</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Verify that there are items in the wishlist" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">buttonTitle</stringProp>
        <stringProp name="RegexExtractor.regex">Update Wish List</stringProp>
        <stringProp name="RegexExtractor.template">FOUND</stringProp>
        <stringProp name="RegexExtractor.default">NOT_FOUND</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Wish List Controller" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/if_wishlist.jmx</stringProp>
      <stringProp name="IfController.condition">"${buttonTitle}" === "FOUND"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    </IfController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Share Wish List" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}wishlist/index/share/wishlist_id/${wishlistId}/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/share_wish_list.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1257102154">&lt;title&gt;Wish List Sharing&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Send Wish List" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="emails" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">emails</stringProp>
          </elementProp>
          <elementProp name="message" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">[TEST] See my wishlist!!!</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">message</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}wishlist/index/send/wishlist_id/${wishlistId}/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/send_wish_list.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1907714722">&lt;title&gt;My Wish List&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">You are signed out.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  </hashTree>

    
        <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Admin Pool" enabled="true">
            <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
            <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
                <boolProp name="LoopController.continue_forever">false</boolProp>
                <stringProp name="LoopController.loops">${loops}</stringProp>
            </elementProp>
            <stringProp name="ThreadGroup.num_threads">${adminPoolUsers}</stringProp>
            <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
            <longProp name="ThreadGroup.start_time">1505803944000</longProp>
            <longProp name="ThreadGroup.end_time">1505803944000</longProp>
            <boolProp name="ThreadGroup.scheduler">false</boolProp>
            <stringProp name="ThreadGroup.duration"/>
            <stringProp name="ThreadGroup.delay"/>
        <stringProp name="TestPlan.comments">tool/fragments/_system/thread_group.jmx</stringProp></ThreadGroup>
        <hashTree>
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Admin CMS Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${adminCMSManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Admin CMS Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin CMS Management" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_cms_management/admin_cms_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/new</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="content" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;CMS Content ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">content</stringProp>
            </elementProp>
            <elementProp name="content_heading" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">content_heading</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
            <elementProp name="identifier" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">identifier</stringProp>
            </elementProp>
            <elementProp name="is_active" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_active</stringProp>
            </elementProp>
            <elementProp name="layout_update_xml" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">layout_update_xml</stringProp>
            </elementProp>
            <elementProp name="meta_description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_description</stringProp>
            </elementProp>
            <elementProp name="meta_keywords" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_keywords</stringProp>
            </elementProp>
            <elementProp name="meta_title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_title</stringProp>
            </elementProp>
            <elementProp name="nodes_data" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">nodes_data</stringProp>
            </elementProp>
            <elementProp name="node_ids" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">node_ids</stringProp>
            </elementProp>
            <elementProp name="page_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">page_id</stringProp>
            </elementProp>
            <elementProp name="page_layout" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1column</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">page_layout</stringProp>
            </elementProp>
            <elementProp name="store_id[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_id[0]</stringProp>
            </elementProp>
            <elementProp name="title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">CMS Title ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">title</stringProp>
            </elementProp>
            <elementProp name="website_root" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">website_root</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-398886250">You saved the page.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCMSManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Browse Product Grid" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${browseProductGridPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Browse Product Grid");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="script">
        vars.put("gridEntityType" , "Product");

        pagesCount = parseInt(vars.get("products_page_size")) || 20;
        vars.put("grid_entity_page_size" , pagesCount);
        vars.put("grid_namespace" , "product_listing");
        vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_product_filter_text"));
        vars.put("grid_filter_field", "name");

        // set sort fields and sort directions
        vars.put("grid_sort_field_1", "name");
        vars.put("grid_sort_field_2", "price");
        vars.put("grid_sort_field_3", "attribute_set_id");
        vars.put("grid_sort_order_1", "asc");
        vars.put("grid_sort_order_2", "desc");
      </stringProp>
      <stringProp name="scriptLanguage">javascript</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_browse_products_grid/setup.jmx</stringProp></JSR223PostProcessor>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} pages count" enabled="true">
        <stringProp name="cacheKey"/>
        <stringProp name="filename"/>
        <stringProp name="parameters"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
          var totalsRecord = parseInt(vars.get("entity_total_records"));
          var pageCount = Math.round(totalsRecord/pageSize);

          vars.put("grid_pages_count", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Filtered Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} filtered pages count" enabled="true">
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
var totalsRecord = parseInt(vars.get("entity_total_records"));
var pageCount = Math.round(totalsRecord/pageSize);

vars.put("grid_pages_count_filtered", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${page_number}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select Filtered ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count_filtered}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="View ${gridEntityType} page - Filtering + Sorting" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Field Defined" enabled="true">
        <stringProp name="ForeachController.inputVal">grid_sort_field</stringProp>
        <stringProp name="ForeachController.returnVal">grid_sort_field</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
        <stringProp name="ForeachController.startIndex">0</stringProp>
        <stringProp name="ForeachController.endIndex">3</stringProp>
      </ForeachController>
      <hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Order Defined" enabled="true">
          <stringProp name="ForeachController.inputVal">grid_sort_order</stringProp>
          <stringProp name="ForeachController.returnVal">grid_sort_order</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
          <stringProp name="ForeachController.startIndex">0</stringProp>
          <stringProp name="ForeachController.endIndex">2</stringProp>
        </ForeachController>
        <hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page - Filtering + Sort By ${grid_sort_field} ${grid_sort_order}" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
              <collectionProp name="Arguments.arguments">
                <elementProp name="namespace" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_namespace}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">namespace</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[${grid_filter_field}]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[${grid_filter_field}]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[placeholder]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[placeholder]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[pageSize]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[pageSize]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[current]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${page_number}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[current]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[field]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_field}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[field]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[direction]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_order}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[direction]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="isAjax" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">isAjax</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
          </HTTPSamplerProxy>
          <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
              </collectionProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Browse Order Grid" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${browseOrderGridPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Browse Order Grid");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="script">
        vars.put("gridEntityType" , "Order");

        pagesCount = parseInt(vars.get("orders_page_size")) || 20;
        vars.put("grid_entity_page_size" , pagesCount);
        vars.put("grid_namespace" , "sales_order_grid");
        vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_orders_filter_text"));
        vars.put("grid_filter_field", "status");

        // set sort fields and sort directions
        vars.put("grid_sort_field_1", "increment_id");
        vars.put("grid_sort_field_2", "created_at");
        vars.put("grid_sort_field_3", "billing_name");
        vars.put("grid_sort_order_1", "asc");
        vars.put("grid_sort_order_2", "desc");
      </stringProp>
      <stringProp name="scriptLanguage">javascript</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_browse_orders_grid/setup.jmx</stringProp></JSR223PostProcessor>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} pages count" enabled="true">
        <stringProp name="cacheKey"/>
        <stringProp name="filename"/>
        <stringProp name="parameters"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
          var totalsRecord = parseInt(vars.get("entity_total_records"));
          var pageCount = Math.round(totalsRecord/pageSize);

          vars.put("grid_pages_count", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Filtered Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} filtered pages count" enabled="true">
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
var totalsRecord = parseInt(vars.get("entity_total_records"));
var pageCount = Math.round(totalsRecord/pageSize);

vars.put("grid_pages_count_filtered", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${page_number}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select Filtered ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count_filtered}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="View ${gridEntityType} page - Filtering + Sorting" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Field Defined" enabled="true">
        <stringProp name="ForeachController.inputVal">grid_sort_field</stringProp>
        <stringProp name="ForeachController.returnVal">grid_sort_field</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
        <stringProp name="ForeachController.startIndex">0</stringProp>
        <stringProp name="ForeachController.endIndex">3</stringProp>
      </ForeachController>
      <hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Order Defined" enabled="true">
          <stringProp name="ForeachController.inputVal">grid_sort_order</stringProp>
          <stringProp name="ForeachController.returnVal">grid_sort_order</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
          <stringProp name="ForeachController.startIndex">0</stringProp>
          <stringProp name="ForeachController.endIndex">2</stringProp>
        </ForeachController>
        <hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page - Filtering + Sort By ${grid_sort_field} ${grid_sort_order}" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
              <collectionProp name="Arguments.arguments">
                <elementProp name="namespace" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_namespace}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">namespace</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[${grid_filter_field}]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[${grid_filter_field}]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[placeholder]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[placeholder]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[pageSize]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[pageSize]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[current]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${page_number}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[current]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[field]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_field}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[field]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[direction]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_order}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[direction]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="isAjax" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">isAjax</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
          </HTTPSamplerProxy>
          <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
              </collectionProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Admin Create Product" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${adminProductCreationPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Admin Create Product");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Once Only Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/once_only_controller.jmx</stringProp>
</OnceOnlyController>
    <hashTree>
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Related Product Id" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/get_related_product_id.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom});
}
relatedIndex = random.nextInt(props.get("simple_products_list").size());
vars.put("related_product_id", props.get("simple_products_list").get(relatedIndex).get("id"));</stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="SetUp - Get Product Attributes" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^.{10,}$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - API Get product attributes" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">mycolor</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">attribute_code</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][1][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">mysize</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][1][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">attribute_code</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][field]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attributes</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/get_product_attributes.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product attributes" enabled="true">
        <stringProp name="VAR">product_attributes</stringProp>
        <stringProp name="JSONPATH">$.items</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="SetUp - Prepare product attributes" enabled="true">
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey"/>
        <stringProp name="script">
var attributesData = JSON.parse(vars.get("product_attributes")),
maxOptions = 2;

attributes = [];
for (i in attributesData) {
    if (i &gt;= 2) {
        break;
    }
    var data = attributesData[i],
        attribute = {
            "id": data.attribute_id,
            "code": data.attribute_code,
            "label": data.default_frontend_label,
            "options": []
        };

    var processedOptions = 0;
    for (optionN in data.options) {
        var option = data.options[optionN];
        if (parseInt(option.value) &gt; 0 &amp;&amp; processedOptions &lt; maxOptions) {
            processedOptions++;
            attribute.options.push(option);
        }
    }
    attributes.push(attribute);
}

vars.putObject("product_attributes", attributes);
</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get Attribute Set Id" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product_set/index/filter/${attribute_set_filter}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_setup_attribute_set.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">attribute_set_id</stringProp>
        <stringProp name="RegexExtractor.regex">catalog&amp;#x2F;product_set&amp;#x2F;edit&amp;#x2F;id&amp;#x2F;([\d]+)&amp;#x2F;"[\D\d]*Attribute Set 1</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="SetUp - Set Attribute Set Filter" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">import org.apache.commons.codec.binary.Base64;

byte[] encodedBytes = Base64.encodeBase64("set_name=Attribute Set 1".getBytes());
vars.put("attribute_set_filter", new String(encodedBytes));
</stringProp>
      </BeanShellPreProcessor>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();
int number1;

if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom});
}
number = random.nextInt(props.get("simple_products_list_for_edit").size());

simpleList = props.get("simple_products_list_for_edit").get(number);
vars.put("simple_product_1_id", simpleList.get("id"));
vars.put("simple_product_1_name", simpleList.get("title"));

do {
    number1 = random.nextInt(props.get("simple_products_list_for_edit").size());
} while(number == number1);
simpleList = props.get("simple_products_list_for_edit").get(number1);
vars.put("simple_product_2_id", simpleList.get("id"));
vars.put("simple_product_2_name", simpleList.get("title"));

number2 = random.nextInt(props.get("configurable_products_list").size());
configurableList = props.get("configurable_products_list").get(number2);
vars.put("configurable_product_1_id", configurableList.get("id"));
vars.put("configurable_product_1_url_key", configurableList.get("url_key"));
vars.put("configurable_product_1_name", configurableList.get("title"));

//Additional category to be added
//int categoryId = Integer.parseInt(vars.get("simple_product_category_id"));
//vars.put("category_additional", (categoryId+1).toString());
//New price
vars.put("price_new", "9999");
//New special price
vars.put("special_price_new", "8888");
//New quantity
vars.put("quantity_new", "100600");
vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNum}-${__Random(1,1000000)}");

      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Bundle Product" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/create_bundle_product.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1509986340">records found</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/4/type/bundle/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-144461265">New Product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product  ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">42</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variations]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            </elementProp>
            <elementProp name="product[shipment_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[shipment_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][title]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][required]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][product_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">25</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][product_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10.99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][title]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][required]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">7.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="affect_bundle_product_selections" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_bundle_product_selections</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/4/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1853918323">{"error":false}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">42</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full bundle product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variations]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            </elementProp>
            <elementProp name="product[shipment_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[shipment_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][required]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">25</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10.99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][required]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">7.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="affect_bundle_product_selections" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_bundle_product_selections</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/4/type/bundle/back/edit/active_tab/product-details/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-583471546">You saved the product</stringProp>
            <stringProp name="-1534079309">option title one</stringProp>
            <stringProp name="-1534074215">option title two</stringProp>
            <stringProp name="1304788671">${simple_product_2_name}</stringProp>
            <stringProp name="417284990">${simple_product_1_name}</stringProp>
          </collectionProp>

          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Create Configurable Product" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/open_catalog_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1509986340">records found</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Configurable Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/${attribute_set_id}/type/configurable/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/new_configurable.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-144461265">New Product</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Configurable Product Validate" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="ajax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">ajax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[affect_product_custom_options]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[affect_product_custom_options]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[attribute_set_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[attribute_set_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[category_ids][0]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">4</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[category_ids][0]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Description</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Keyword</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_title]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Title</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_title]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[name]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[name]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[options_container]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">container2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[options_container]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[product_has_weight]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[short_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[short_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[sku]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[sku]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[small_image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[small_image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[special_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${special_price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[special_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[status]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[status]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[thumbnail]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[thumbnail]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[url_key]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[url_key]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[visibility]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">4</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[visibility]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[website_ids][1]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[website_ids][1]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="links[related][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[related][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/${attribute_set_id}/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_validate.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1853918323">{"error":false}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Prepare Configurable Data" enabled="true">
            <stringProp name="scriptLanguage">javascript</stringProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="cacheKey"/>
            <stringProp name="script">
attributes = vars.getObject("product_attributes");

for (i in attributes) {
    var attribute = attributes[i];
    sampler.addArgument("attribute_codes[" + i + "]", attribute.code);
    sampler.addArgument("attributes[" + i + "]", attribute.id);
    sampler.addArgument("product[" + attribute.code + "]", attribute.options[0].value);
    addConfigurableAttributeData(attribute);
}

addConfigurableMatrix(attributes);

function addConfigurableAttributeData(attribute) {
    var attributeId = attribute.id;

    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attribute.code);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attribute.label);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][position]", 0);
    attribute.options.forEach(function (option, index) {
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][include]", index);
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][value_index]", option.value);
    });
}

/**
 * Build 4 simple products for Configurable
 */
function addConfigurableMatrix(attributes) {

    var attribute1 = attributes[0],
        attribute2 = attributes[1],
        productIndex = 1,
        products = [];
    var variationNames = [];
    attribute1.options.forEach(function (option1) {
        attribute2.options.forEach(function (option2) {
            var productAttributes = {},
                namePart = option1.label + "+" + option2.label,
                variationKey = option1.value + "-" + option2.value;
            productAttributes[attribute1.code] = option1.value;
            productAttributes[attribute2.code] = option2.value;

            variationNames.push(namePart + " - " + vars.get("configurable_sku"));
            var product = {
                "id": null,
                "name": namePart + " - " + vars.get("configurable_sku"),
                "sku": namePart + " - " + vars.get("configurable_sku"),
                "status": 1,
                "price": "100",
                "price_currency": "$",
                "price_string": "$100",
                "weight": "6",
                "qty": "50",
                "variationKey": variationKey,
                "configurable_attribute": JSON.stringify(productAttributes),
                "thumbnail_image": "",
                "media_gallery": {"images": {}},
                "image": [],
                "was_changed": true,
                "canEdit": 1,
                "newProduct": 1,
                "record_id": productIndex
            };
            productIndex++;
            products.push(product);
        });
    });

    sampler.addArgument("configurable-matrix-serialized", JSON.stringify(products));
    vars.putObject("configurable_variations_assertion", variationNames);
}
            </stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Configurable Product Save" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="ajax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">ajax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[affect_product_custom_options]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[affect_product_custom_options]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[attribute_set_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[attribute_set_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[category_ids][0]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[category_ids][0]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Description</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Keyword</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_title]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Title</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_title]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[name]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[name]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[options_container]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">container2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[options_container]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[product_has_weight]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[short_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[short_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[sku]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[sku]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[small_image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[small_image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[special_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${special_price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[special_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[status]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[status]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[thumbnail]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[thumbnail]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[url_key]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[url_key]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[visibility]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">4</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[visibility]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[website_ids][1]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[website_ids][1]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="links[related][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[related][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/${attribute_set_id}/type/configurable/back/edit/active_tab/product-details/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_save.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-583471546">You saved the product</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Assert Variation" enabled="true">
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey"/>
        <stringProp name="script">
var configurableVariations = vars.getObject("configurable_variations_assertion"),
response = SampleResult.getResponseDataAsString();

configurableVariations.forEach(function (variation) {
    if (response.indexOf(variation) == -1) {
        AssertionResult.setFailureMessage("Cannot find variation \"" + variation + "\"");
        AssertionResult.setFailure(true);
    }
});
</stringProp>
      </JSR223Assertion>
      <hashTree/>
    
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Prepare Configurable Data" enabled="true">
            <stringProp name="scriptLanguage">javascript</stringProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="cacheKey"/>
            <stringProp name="script">
attributes = vars.getObject("product_attributes");

for (i in attributes) {
    var attribute = attributes[i];
    sampler.addArgument("attribute_codes[" + i + "]", attribute.code);
    sampler.addArgument("attributes[" + i + "]", attribute.id);
    sampler.addArgument("product[" + attribute.code + "]", attribute.options[0].value);
    addConfigurableAttributeData(attribute);
}

addConfigurableMatrix(attributes);

function addConfigurableAttributeData(attribute) {
    var attributeId = attribute.id;

    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attribute.code);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attribute.label);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][position]", 0);
    attribute.options.forEach(function (option, index) {
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][include]", index);
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][value_index]", option.value);
    });
}

/**
 * Build 4 simple products for Configurable
 */
function addConfigurableMatrix(attributes) {

    var attribute1 = attributes[0],
        attribute2 = attributes[1],
        productIndex = 1,
        products = [];
    var variationNames = [];
    attribute1.options.forEach(function (option1) {
        attribute2.options.forEach(function (option2) {
            var productAttributes = {},
                namePart = option1.label + "+" + option2.label,
                variationKey = option1.value + "-" + option2.value;
            productAttributes[attribute1.code] = option1.value;
            productAttributes[attribute2.code] = option2.value;

            variationNames.push(namePart + " - " + vars.get("configurable_sku"));
            var product = {
                "id": null,
                "name": namePart + " - " + vars.get("configurable_sku"),
                "sku": namePart + " - " + vars.get("configurable_sku"),
                "status": 1,
                "price": "100",
                "price_currency": "$",
                "price_string": "$100",
                "weight": "6",
                "qty": "50",
                "variationKey": variationKey,
                "configurable_attribute": JSON.stringify(productAttributes),
                "thumbnail_image": "",
                "media_gallery": {"images": {}},
                "image": [],
                "was_changed": true,
                "canEdit": 1,
                "newProduct": 1,
                "record_id": productIndex
            };
            productIndex++;
            products.push(product);
        });
    });

    sampler.addArgument("configurable-matrix-serialized", JSON.stringify(products));
    vars.putObject("configurable_variations_assertion", variationNames);
}
            </stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Downloadable Product" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/create_downloadable_product.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1509986340">records found</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/4/type/downloadable/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-144461265">New Product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Upload Original File" enabled="true">
        <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
          <collectionProp name="HTTPFileArgs.files">
            <elementProp name="${files_folder}downloadable_original.txt" elementType="HTTPFileArg">
              <stringProp name="File.path">${files_folder}downloadable_original.txt</stringProp>
              <stringProp name="File.paramname">links</stringProp>
              <stringProp name="File.mimetype">text/plain</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/downloadable_file/upload/type/links/?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract original file" enabled="true">
          <stringProp name="VAR">original_file</stringProp>
          <stringProp name="JSONPATH">$.file</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Upload Sample File" enabled="true">
        <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
          <collectionProp name="HTTPFileArgs.files">
            <elementProp name="${files_folder}downloadable_sample.txt" elementType="HTTPFileArg">
              <stringProp name="File.path">${files_folder}downloadable_sample.txt</stringProp>
              <stringProp name="File.paramname">samples</stringProp>
              <stringProp name="File.mimetype">text/plain</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/downloadable_file/upload/type/samples/?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract sample file" enabled="true">
          <stringProp name="VAR">sample_file</stringProp>
          <stringProp name="JSONPATH">$.file</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Product Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="is_downloadable" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">on</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_downloadable</stringProp>
            </elementProp>
            <elementProp name="product[links_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Links</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[links_title]</stringProp>
            </elementProp>
            <elementProp name="product[links_purchased_separately]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[links_purchased_separately]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${original_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_original.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">13</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_shareable]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_shareable]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_unlimited]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_unlimited]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][link_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][link_url]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][number_of_downloads]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][number_of_downloads]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">120</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][price]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][record_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][type]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][url]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sort_order]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Original Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][title]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][type]</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${sample_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_sample.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">14</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][record_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sample_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sample_url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sort_order]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Sample Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][title]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/4/type/downloadable/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1853918323">{"error":false}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Product Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${original_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_original.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">13</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_shareable]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_shareable]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_unlimited]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_unlimited]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][link_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][link_url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][number_of_downloads]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][number_of_downloads]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">120</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][price]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][record_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sort_order]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Original Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][title]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${sample_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_sample.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">14</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][record_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sample_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sample_url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sort_order]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Sample Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][title]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/4/type/downloadable/back/edit/active_tab/product-details/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-583471546">You saved the product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1600986843">violation</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">6</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Simple Product" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/create_simple_product.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1509986340">records found</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Simple Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/4/type/simple/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-144461265">New Product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Simple Product Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_require]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_group]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Product Option Title One</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">200</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Row Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_require]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][max_characters]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">250</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][max_characters]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">text</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_group]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Field Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/4/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1853918323">{"error":false}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Simple Product Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full simple product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_require]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_group]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Product Option Title One</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][title]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][type]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">200</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price_type]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sku]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sort_order]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Row Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][title]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_require]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][max_characters]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">250</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][max_characters]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">text</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_group]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_type]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price_type]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sku]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sort_order]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Field Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][title]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][type]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/4/type/simple/back/edit/active_tab/product-details/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-583471546">You saved the product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1600986843">violation</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">6</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Admin Edit Product" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${adminProductEditingPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Admin Edit Product");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Edit Product" enabled="true"/>
              <hashTree>
                <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Generate Unique Ids for each Thread" enabled="true">
                  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_product/admin_edit_product_updated.jmx</stringProp>
                  <stringProp name="BeanShellSampler.query">import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Random;

    int relatedIndex;
    try {
    Random random = new Random();
    if (${seedForRandom} &gt; 0) {
      random.setSeed(${seedForRandom} + ${__threadNum});
    }
    simpleCount = props.get("simple_products_list_for_edit").size();
    configCount = props.get("configurable_products_list_for_edit").size();
    productCount = 0;
    if (simpleCount &gt; configCount) {
    	productCount = configCount;
    } else {
    	productCount = simpleCount;
    }
    int threadsNumber = ctx.getThreadGroup().getNumThreads();
    if (threadsNumber == 0) {
    	threadsNumber = 1;
    }
    //Current thread number starts from 0
    currentThreadNum = ctx.getThreadNum();

    String siterator = vars.get("threadIterator_" + currentThreadNum.toString());
    iterator = 0;
    if(siterator == null){
    	vars.put("threadIterator_" + currentThreadNum.toString() , "0");
    } else {
    	iterator = Integer.parseInt(siterator);
    	iterator ++;
    	vars.put("threadIterator_" + currentThreadNum.toString() , iterator.toString());
    }

    //Number of products for one thread
    productClusterLength = productCount / threadsNumber;

    if (iterator &gt;= productClusterLength) {
    	vars.put("threadIterator_" + currentThreadNum.toString(), "0");
    	iterator = 0;
    }

    //Index of the current product from the cluster
    i = productClusterLength * currentThreadNum + iterator;

    //ids of simple and configurable products to edit
    vars.put("simple_product_id", props.get("simple_products_list_for_edit").get(i).get("id"));
    vars.put("configurable_product_id", props.get("configurable_products_list_for_edit").get(i).get("id"));

    //id of related product
    do {
    	relatedIndex = random.nextInt(props.get("simple_products_list_for_edit").size());
    } while(i == relatedIndex);
    vars.put("related_product_id", props.get("simple_products_list_for_edit").get(relatedIndex).get("id"));
    } catch (Exception ex) {
    log.info("Script execution failed", ex);
}</stringProp>
                  <stringProp name="BeanShellSampler.filename"/>
                  <stringProp name="BeanShellSampler.parameters"/>
                  <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
                </BeanShellSampler>
                <hashTree/>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Simple Product" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments"/>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/edit/id/${simple_product_id}/</stringProp>
                  <stringProp name="HTTPSampler.method">GET</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1355179215">Product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">16</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract name" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">simple_product_name</stringProp>
                    <stringProp name="RegexExtractor.regex">,"name":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract sku" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">simple_product_sku</stringProp>
                    <stringProp name="RegexExtractor.regex">,"sku":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">simple_product_category_id</stringProp>
                    <stringProp name="RegexExtractor.regex">,"category_ids":."(\d+)".</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                </hashTree>
                <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set updated values" enabled="true">
                  <stringProp name="TestPlan.comments">Passing arguments between threads</stringProp>
                  <stringProp name="BeanShellSampler.query">//Additional category to be added
                    import java.util.Random;

                        Random randomGenerator = new Random();
                        int newCategoryId;
                        if (${seedForRandom} &gt; 0) {
                          randomGenerator.setSeed(${seedForRandom} + ${__threadNum});
                        }

                        int categoryId = Integer.parseInt(vars.get("simple_product_category_id"));
                        categoryList = props.get("admin_category_ids_list");

                        if (categoryList.size() &gt; 1) {
	                        do {
	                            int index = randomGenerator.nextInt(categoryList.size());
	                            newCategoryId = Integer.parseInt(categoryList.get(index));
	                        } while (categoryId == newCategoryId);

                            vars.put("category_additional", newCategoryId.toString());
                        }

                        //New price
                        vars.put("price_new", "9999");
                        //New special price
                        vars.put("special_price_new", "8888");
                        //New quantity
                        vars.put("quantity_new", "100600");
                  </stringProp>
                  <stringProp name="BeanShellSampler.filename"/>
                  <stringProp name="BeanShellSampler.parameters"/>
                  <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
                </BeanShellSampler>
                <hashTree/>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Simple Product Validate" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="ajax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">ajax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1.0000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Full simple product Description ${simple_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variations]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[small_image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[small_image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[thumbnail]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[thumbnail]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">10000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/id/${simple_product_id}/?isAjax=true</stringProp>
                  <stringProp name="HTTPSampler.method">POST</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1853918323">{"error":false}</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Simple Product Save" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="ajax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">ajax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1.0000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${category_additional}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Full simple product Description ${simple_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variations]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[small_image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[small_image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[thumbnail]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[thumbnail]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">10000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/id/${simple_product_id}/back/edit/active_tab/product-details/</stringProp>
                  <stringProp name="HTTPSampler.method">POST</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="-583471546">You saved the product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Configurable Product" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments"/>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/edit/id/${configurable_product_id}/</stringProp>
                  <stringProp name="HTTPSampler.method">GET</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1355179215">Product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">16</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract name" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_name</stringProp>
                    <stringProp name="RegexExtractor.regex">,"name":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract sku" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_sku</stringProp>
                    <stringProp name="RegexExtractor.regex">,"sku":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_category_id</stringProp>
                    <stringProp name="RegexExtractor.regex">,"category_ids":."(\d+)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract configurable attribute id" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_id</stringProp>
                    <stringProp name="RegexExtractor.regex">,"configurable_variation":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                    <boolProp name="RegexExtractor.default_empty_value">true</boolProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract configurable matrix" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_matrix</stringProp>
                    <stringProp name="RegexExtractor.regex">"configurable-matrix":(\[.*?\])</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                    <boolProp name="RegexExtractor.default_empty_value">true</boolProp>
                  </RegexExtractor>
                  <hashTree/>
                  <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract associated products ids" enabled="true">
                    <stringProp name="VAR">associated_products_ids</stringProp>
                    <stringProp name="JSONPATH">$.[*].id</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE">configurable_matrix</stringProp>
                    <stringProp name="SUBJECT">VAR</stringProp>
                  </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract configurable product json" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_data</stringProp>
                    <stringProp name="RegexExtractor.regex">(\{"product":.*?configurable_attributes_data.*?\})\s*&lt;</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract configurable attributes data" enabled="true">
                    <stringProp name="VAR">configurable_attributes_data</stringProp>
                    <stringProp name="JSONPATH">$.product.configurable_attributes_data</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE">configurable_product_data</stringProp>
                    <stringProp name="SUBJECT">VAR</stringProp>
                  </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute ids" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_ids</stringProp>
                    <stringProp name="RegexExtractor.regex">"attribute_id":"(\d+)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute codes" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_codes</stringProp>
                    <stringProp name="RegexExtractor.regex">"code":"(\w+)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute labels" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_labels</stringProp>
                    <stringProp name="RegexExtractor.regex">"label":"(.*?)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute values" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_values</stringProp>
                    <stringProp name="RegexExtractor.regex">"values":(\{(?:\}|.*?\}\}))</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                </hashTree>
                <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach configurable attribute id" enabled="true">
                  <stringProp name="ForeachController.inputVal">configurable_attribute_ids</stringProp>
                  <stringProp name="ForeachController.returnVal">configurable_attribute_id</stringProp>
                  <boolProp name="ForeachController.useSeparator">true</boolProp>
                </ForeachController>
                <hashTree>
                  <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
                    <stringProp name="CounterConfig.start">1</stringProp>
                    <stringProp name="CounterConfig.end">${configurable_attribute_ids_matchNr}</stringProp>
                    <stringProp name="CounterConfig.incr">1</stringProp>
                    <stringProp name="CounterConfig.name">attribute_counter</stringProp>
                    <stringProp name="CounterConfig.format"/>
                    <boolProp name="CounterConfig.per_user">true</boolProp>
                    <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
                  </CounterConfig>
                  <hashTree/>
                  <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Process configurable attribute values" enabled="true">
                    <stringProp name="BeanShellSampler.query">return vars.get("configurable_attribute_values_" + vars.get("attribute_counter"));</stringProp>
                    <stringProp name="BeanShellSampler.filename"/>
                    <stringProp name="BeanShellSampler.parameters"/>
                    <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
                  </BeanShellSampler>
                  <hashTree>
                    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Exctract attribute values" enabled="true">
                      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                      <stringProp name="RegexExtractor.refname">attribute_${configurable_attribute_id}_values</stringProp>
                      <stringProp name="RegexExtractor.regex">"value_index":"(\d+)"</stringProp>
                      <stringProp name="RegexExtractor.template">$1$</stringProp>
                      <stringProp name="RegexExtractor.default"/>
                      <stringProp name="RegexExtractor.match_number">-1</stringProp>
                      <stringProp name="Scope.variable">configurable_attribute_values_${attribute_counter}</stringProp>
                    </RegexExtractor>
                    <hashTree/>
                  </hashTree>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Configurable Product Validate" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">3</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${category_additional}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Configurable product description ${configurable_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_attribute_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variation]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[visibility]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">4</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[visibility]</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">true</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">50</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][type_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">configurable</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][type_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/id/${configurable_product_id}/</stringProp>
                  <stringProp name="HTTPSampler.method">POST</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Configure product options" enabled="true">
                    <boolProp name="resetInterpreter">false</boolProp>
                    <stringProp name="parameters"/>
                    <stringProp name="filename"/>
                    <stringProp name="script">try {
    	int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr"));
    	for (int i = 1; i &lt;= attributesCount; i++) {
    		attributeId = vars.get("configurable_attribute_ids_" + i.toString());
    		attributeCode = vars.get("configurable_attribute_codes_" + i.toString());
    		attributeLabel = vars.get("configurable_attribute_labels_" + i.toString());
    		ctx.getCurrentSampler().addArgument("attributes[" + (i - 1).toString() + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("attribute_codes[" + (i - 1).toString() + "]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[" + attributeCode + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][position]", (i - 1).toString());
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attributeLabel);

    		int valuesCount = Integer.parseInt(vars.get("attribute_" + attributeId + "_values_matchNr"));
    		for (int j = 1; j &lt;= valuesCount; j++) {
    			attributeValue = vars.get("attribute_" + attributeId + "_values_" + j.toString());
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][include]",
    				"1"
    			);
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][value_index]",
    				attributeValue
    			);
    		}
    	}
    	ctx.getCurrentSampler().addArgument("associated_product_ids_serialized", vars.get("associated_products_ids").toString());
    } catch (Exception e) {
        log.error("error???", e);
    }</stringProp>
                  </BeanShellPreProcessor>
                  <hashTree/>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1853918323">{"error":false}</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Configurable Product Save" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="ajax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">ajax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]admin" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]admin</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">3</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${category_additional}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Configurable product description ${configurable_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_attribute_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variation]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[visibility]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">4</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[visibility]</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">true</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">50</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][type_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">configurable</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][type_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/id/${configurable_product_id}/back/edit/active_tab/product-details/</stringProp>
                  <stringProp name="HTTPSampler.method">POST</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Configure product options" enabled="true">
                    <boolProp name="resetInterpreter">false</boolProp>
                    <stringProp name="parameters"/>
                    <stringProp name="filename"/>
                    <stringProp name="script">try {
    	int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr"));
    	for (int i = 1; i &lt;= attributesCount; i++) {
    		attributeId = vars.get("configurable_attribute_ids_" + i.toString());
    		attributeCode = vars.get("configurable_attribute_codes_" + i.toString());
    		attributeLabel = vars.get("configurable_attribute_labels_" + i.toString());
    		ctx.getCurrentSampler().addArgument("attributes[" + (i - 1).toString() + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("attribute_codes[" + (i - 1).toString() + "]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[" + attributeCode + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][position]", (i - 1).toString());
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attributeLabel);

    		int valuesCount = Integer.parseInt(vars.get("attribute_" + attributeId + "_values_matchNr"));
    		for (int j = 1; j &lt;= valuesCount; j++) {
    			attributeValue = vars.get("attribute_" + attributeId + "_values_" + j.toString());
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][include]",
    				"1"
    			);
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][value_index]",
    				attributeValue
    			);
    		}
    	}
    	ctx.getCurrentSampler().addArgument("associated_product_ids_serialized", vars.get("associated_products_ids").toString());
    } catch (Exception e) {
        log.error("error???", e);
    }</stringProp>
                  </BeanShellPreProcessor>
                  <hashTree/>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="-583471546">You saved the product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                    <stringProp name="TestPlan.comments"> if have trouble see messages-message-error </stringProp>
                  </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  </hashTree>

    
        <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="CSR Pool" enabled="true">
            <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
            <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
                <boolProp name="LoopController.continue_forever">false</boolProp>
                <stringProp name="LoopController.loops">${loops}</stringProp>
            </elementProp>
            <stringProp name="ThreadGroup.num_threads">${csrPoolUsers}</stringProp>
            <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
            <longProp name="ThreadGroup.start_time">1505803944000</longProp>
            <longProp name="ThreadGroup.end_time">1505803944000</longProp>
            <boolProp name="ThreadGroup.scheduler">false</boolProp>
            <stringProp name="ThreadGroup.duration"/>
            <stringProp name="ThreadGroup.delay"/>
        <stringProp name="TestPlan.comments">tool/fragments/_system/thread_group.jmx</stringProp></ThreadGroup>
        <hashTree>
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Admin Returns Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${adminReturnsManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Admin Returns Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Orders page" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/orders_page.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1204796042">Create New Order</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">desc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
        </elementProp>
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/open_orders.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1637639774">totalRecords</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Pending Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
        </elementProp>
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">asc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/search_orders.jmx</stringProp></HTTPSamplerProxy>
<hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">totalRecords</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order numbers" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_numbers</stringProp>
        <stringProp name="RegexExtractor.regex">\"increment_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order ids" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_ids</stringProp>
        <stringProp name="RegexExtractor.regex">\"entity_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>

      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Generate Unique Ids for each Thread" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
  import java.util.ArrayList;
  import java.util.HashMap;
  import org.apache.jmeter.protocol.http.util.Base64Encoder;
  import java.util.Random;

  // get count of "order_numbers" variable defined in "Search Pending Orders Limit"
  int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr"));


  int clusterLength;
  int threadsNumber = ctx.getThreadGroup().getNumThreads();
  if (threadsNumber == 0) {
      //Number of orders for one thread
      clusterLength = ordersCount;
  } else {
      clusterLength = Math.round(ordersCount / threadsNumber);
      if (clusterLength == 0) {
          clusterLength = 1;
      }
  }

  //Current thread number starts from 0
  int currentThreadNum = ctx.getThreadNum();

  //Index of the current product from the cluster
  Random random = new Random();
  if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
  }
  int iterator = random.nextInt(clusterLength);
  if (iterator == 0) {
  	iterator = 1;
  }

  int i = clusterLength * currentThreadNum + iterator;

  orderNumber = vars.get("order_numbers_" + i.toString());
  orderId = vars.get("order_ids_" + i.toString());
  vars.put("order_number", orderNumber);
  vars.put("order_id", orderId);

  </stringProp>
    <stringProp name="BeanShellSampler.filename"/>
    <stringProp name="BeanShellSampler.parameters"/>
    <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
  </BeanShellSampler>
  <hashTree/>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Order" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/view/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/open_order.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="2103620713">#${order_number}</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order status" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">order_status</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;span id="order_status"&gt;([^&lt;]+)&lt;/span&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
      <stringProp name="IfController.condition">"${order_status}" == "Pending"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/if_controller.jmx</stringProp></IfController>
    <hashTree>
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Start" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/invoice_start.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="-1233850814">Invoice Totals</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract ordered items ids" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">item_ids</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;div id="order_item_(\d+)_title"\s*class="product-title"&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">-1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Submit" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_1}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_1}]</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_2}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_2}]</stringProp>
        </elementProp>
        <elementProp name="invoice[comment_text]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">Invoiced</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[comment_text]</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">POST</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1740524604">The invoice has been created</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Credit Memo Start" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_creditmemo/start/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/credit_memo_start.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1382627322">New Memo</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Credit Memo Submit - Full Refund" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="creditmemo[items][${item_ids_1}][qty]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[items][${item_ids_1}][qty]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[items][${item_ids_2}][qty]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[items][${item_ids_2}][qty]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[do_offline]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[do_offline]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[comment_text]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">Credit Memo added</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[comment_text]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[shipping_amount]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">10</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[shipping_amount]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[adjustment_positive]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">0</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[adjustment_positive]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[adjustment_negative]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">0</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[adjustment_negative]</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_creditmemo/save/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">POST</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/credit_memo_full_refund.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-515117447">You created the credit memo</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
    <hashTree/>
  </hashTree>

    <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Create/Process Returns - Pause" enabled="true">
      <intProp name="ActionProcessor.action">1</intProp>
      <intProp name="ActionProcessor.target">0</intProp>
      <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCreateProcessReturnsDelay}*1000))}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/pause.jmx</stringProp></TestAction>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Browse Customer Grid" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${browseCustomerGridPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Browse Customer Grid");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="script">
        vars.put("gridEntityType" , "Customer");

        pagesCount = parseInt(vars.get("customers_page_size")) || 20;
        vars.put("grid_entity_page_size" , pagesCount);
        vars.put("grid_namespace" , "customer_listing");
        vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_customer_filter_text"));
        vars.put("grid_filter_field", "name");

        // set sort fields and sort directions
        vars.put("grid_sort_field_1", "name");
        vars.put("grid_sort_field_2", "group_id");
        vars.put("grid_sort_field_3", "billing_country_id");
        vars.put("grid_sort_order_1", "asc");
        vars.put("grid_sort_order_2", "desc");
      </stringProp>
      <stringProp name="scriptLanguage">javascript</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_browse_customers_grid/setup.jmx</stringProp></JSR223PostProcessor>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} pages count" enabled="true">
        <stringProp name="cacheKey"/>
        <stringProp name="filename"/>
        <stringProp name="parameters"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
          var totalsRecord = parseInt(vars.get("entity_total_records"));
          var pageCount = Math.round(totalsRecord/pageSize);

          vars.put("grid_pages_count", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Filtered Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} filtered pages count" enabled="true">
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
var totalsRecord = parseInt(vars.get("entity_total_records"));
var pageCount = Math.round(totalsRecord/pageSize);

vars.put("grid_pages_count_filtered", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${page_number}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select Filtered ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count_filtered}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="View ${gridEntityType} page - Filtering + Sorting" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Field Defined" enabled="true">
        <stringProp name="ForeachController.inputVal">grid_sort_field</stringProp>
        <stringProp name="ForeachController.returnVal">grid_sort_field</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
        <stringProp name="ForeachController.startIndex">0</stringProp>
        <stringProp name="ForeachController.endIndex">3</stringProp>
      </ForeachController>
      <hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Order Defined" enabled="true">
          <stringProp name="ForeachController.inputVal">grid_sort_order</stringProp>
          <stringProp name="ForeachController.returnVal">grid_sort_order</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
          <stringProp name="ForeachController.startIndex">0</stringProp>
          <stringProp name="ForeachController.endIndex">2</stringProp>
        </ForeachController>
        <hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page - Filtering + Sort By ${grid_sort_field} ${grid_sort_order}" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
              <collectionProp name="Arguments.arguments">
                <elementProp name="namespace" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_namespace}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">namespace</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[${grid_filter_field}]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[${grid_filter_field}]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[placeholder]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[placeholder]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[pageSize]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[pageSize]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[current]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${page_number}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[current]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[field]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_field}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[field]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[direction]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_order}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[direction]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="isAjax" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">isAjax</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
          </HTTPSamplerProxy>
          <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
              </collectionProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Admin Create Order" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${adminCreateOrderPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Admin Create Order");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Get region data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">
      vars.put("alabama_region_id", props.get("alabama_region_id"));
      vars.put("california_region_id", props.get("california_region_id"));
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_region_data.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Order" enabled="true"/>
    <hashTree>
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_order/admin_create_order.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();

if (${seedForRandom} &gt; 0) {
  random.setSeed(${seedForRandom});
}

number = random.nextInt(props.get("configurable_products_list").size());
configurableList = props.get("configurable_products_list").get(number);
vars.put("configurable_product_1_url_key", configurableList.get("url_key"));
vars.put("configurable_product_1_name", configurableList.get("title"));
vars.put("configurable_product_1_id", configurableList.get("id"));
vars.put("configurable_product_1_sku", configurableList.get("sku"));
vars.put("configurable_attribute_id", configurableList.get("attribute_id"));
vars.put("configurable_option_id", configurableList.get("attribute_option_id"));

number = random.nextInt(props.get("simple_products_list").size());
simpleList = props.get("simple_products_list").get(number);
vars.put("simple_product_1_url_key", simpleList.get("url_key"));
vars.put("simple_product_1_name", simpleList.get("title"));
vars.put("simple_product_1_id", simpleList.get("id"));

number1 = random.nextInt(props.get("configurable_products_list").size());
do {
    number1 = random.nextInt(props.get("simple_products_list").size());
} while(number == number1);
simpleList = props.get("simple_products_list").get(number1);
vars.put("simple_product_2_url_key", simpleList.get("url_key"));
vars.put("simple_product_2_name", simpleList.get("title"));
vars.put("simple_product_2_id", simpleList.get("id"));


customers_index = 0;
if (!props.containsKey("customer_ids_index")) {
	props.put("customer_ids_index", customers_index);
}

try {
	customers_index = props.get("customer_ids_index");
	customers_list = props.get("customer_ids_list");

	if (customers_index == customers_list.size()) {
		customers_index=0;
	}
	vars.put("customer_id", customers_list.get(customers_index));
	props.put("customer_ids_index", ++customers_index);
}
catch (java.lang.Exception e) {
	   log.error("Caught Exception in 'Admin Create Order' thread.");
	   SampleResult.setStopThread(true);
}</stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Start Order" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/start/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree/>
      <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="SetUp - Get Configurable Product Options" enabled="true"/>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">Content-Type</stringProp>
              <stringProp name="Header.value">application/json</stringProp>
            </elementProp>
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">*/*</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
            <collectionProp name="Arguments.arguments">
              <elementProp name="" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
          <stringProp name="HTTPSampler.method">POST</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
            <stringProp name="VAR">admin_token</stringProp>
            <stringProp name="JSONPATH">$</stringProp>
            <stringProp name="DEFAULT"/>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="484395188">^.{10,}$</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">1</intProp>
            <stringProp name="Assertion.scope">variable</stringProp>
            <stringProp name="Scope.variable">admin_token</stringProp>
          </ResponseAssertion>
          <hashTree/>
        </hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">Authorization</stringProp>
              <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get Configurable Product Options" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments"/>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${configurable_product_1_sku}/options/all</stringProp>
          <stringProp name="HTTPSampler.method">GET</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
            <stringProp name="VAR">attribute_ids</stringProp>
            <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
            <stringProp name="DEFAULT">NO_VALUE</stringProp>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
            <stringProp name="VAR">option_values</stringProp>
            <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
            <stringProp name="DEFAULT">NO_VALUE</stringProp>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
        </hashTree>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Products" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="item[${simple_product_1_id}][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">item[${simple_product_1_id}][qty]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="item[${simple_product_2_id}][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">item[${simple_product_2_id}][qty]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="item[${configurable_product_1_id}][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">item[${configurable_product_1_id}][qty]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="customer_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">customer_id</stringProp>
              <stringProp name="Argument.value">${customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="store_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">store_id</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="currency_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">currency_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="payment[method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">payment[method]</stringProp>
              <stringProp name="Argument.value">checkmo</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="reset_shipping" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">reset_shipping</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="json" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">json</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="as_js_varname" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">as_js_varname</stringProp>
              <stringProp name="Argument.value">iFrameResponse</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/loadBlock/block/search,items,shipping_method,totals,giftmessage,billing_method?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Configure product options" enabled="true">
          <boolProp name="resetInterpreter">false</boolProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="script">try {
	attribute_ids = vars.get("attribute_ids");
	option_values = vars.get("option_values");
	attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
	option_values = option_values.replace("[","").replace("]","").replace("\"", "");
	attribute_ids_array = attribute_ids.split(",");
	option_values_array = option_values.split(",");
	args = ctx.getCurrentSampler().getArguments();
	it = args.iterator();
	while (it.hasNext()) {
	    argument = it.next();
	    if (argument.getStringValue().contains("${")) {
	        args.removeArgument(argument.getName());
	    }
	}
	for (int i = 0; i &lt; attribute_ids_array.length; i++) {

    ctx.getCurrentSampler().addArgument("item[" + vars.get("configurable_product_1_id") + "][super_attribute][" + attribute_ids_array[i] + "]", option_values_array[i]);
	}
} catch (Exception e) {
    log.error("error???", e);
}</stringProp>
        </BeanShellPreProcessor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Collect Shipping Rates" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="collect_shipping_rates" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">collect_shipping_rates</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="customer_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">customer_id</stringProp>
              <stringProp name="Argument.value">${customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="store_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">store_id</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="currency_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">currency_id</stringProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="payment[method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">payment[method]</stringProp>
              <stringProp name="Argument.value">checkmo</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="json" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">json</stringProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/loadBlock/block/shipping_method,totals?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Shipping Method" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1987784558">shipping_method</stringProp>
            <stringProp name="818779431">Flat Rate</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Filled Order Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/index/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Filled Order Page" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-37823069">Select from existing customer addresses</stringProp>
            <stringProp name="-13185722">Submit Order</stringProp>
            <stringProp name="-209419315">Items Ordered</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save Order" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="limit" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">limit</stringProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="entity_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">entity_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="email" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">email</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="Telephone" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">Telephone</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="billing_postcode" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">billing_postcode</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="billing_country_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">billing_country_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="billing_regione" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">billing_regione</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="store_name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">store_name</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="page" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">page</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[currency]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[currency]</stringProp>
              <stringProp name="Argument.value">USD</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="sku" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">sku</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="qty" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">qty</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="limit" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">limit</stringProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="entity_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">entity_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="sku" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">sku</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="price[from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">price[from]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="price[to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">price[to]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="in_products" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">in_products</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="page" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">page</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="coupon_code" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">coupon_code</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[account][group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[account][group_id]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[account][email]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[account][email]</stringProp>
              <stringProp name="Argument.value">user_${customer_id}@example.com</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][customer_address_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][customer_address_id]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][prefix]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][firstname]</stringProp>
              <stringProp name="Argument.value">Anthony</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][middlename]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][lastname]</stringProp>
              <stringProp name="Argument.value">Nealy</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][suffix]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][company]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][street][0]</stringProp>
              <stringProp name="Argument.value">123 Freedom Blvd. #123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][street][1]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][city]</stringProp>
              <stringProp name="Argument.value">Fayetteville</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][country_id]</stringProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][region]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][region_id]</stringProp>
              <stringProp name="Argument.value">${alabama_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][postcode]</stringProp>
              <stringProp name="Argument.value">123123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][telephone]</stringProp>
              <stringProp name="Argument.value">022-333-4455</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][fax]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][fax]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][vat_id]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipping_same_as_billing" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipping_same_as_billing</stringProp>
              <stringProp name="Argument.value">on</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="payment[method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">payment[method]</stringProp>
              <stringProp name="Argument.value">checkmo</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[shipping_method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[shipping_method]</stringProp>
              <stringProp name="Argument.value">flatrate_flatrate</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[comment][customer_note]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[comment][customer_note]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[comment][customer_note_notify]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[comment][customer_note_notify]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[send_confirmation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[send_confirmation]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_id</stringProp>
          <stringProp name="RegexExtractor.regex">${host}${base_path}${admin_path}/sales/order/index/order_id/(\d+)/</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Item 1" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_item_1</stringProp>
          <stringProp name="RegexExtractor.regex">order_item_(\d+)_title</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Item 2" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_item_2</stringProp>
          <stringProp name="RegexExtractor.regex">order_item_(\d+)_title</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">2</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Item 3" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_item_3</stringProp>
          <stringProp name="RegexExtractor.regex">order_item_(\d+)_title</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">3</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Item 1" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_item_1</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Item 2" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_item_2</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Item 3" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_item_3</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Created" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="563107624">You created the order.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save Invoice" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[items][${order_item_1}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[items][${order_item_1}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[items][${order_item_2}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[items][${order_item_2}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[items][${order_item_3}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[items][${order_item_3}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[comment_text]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[comment_text]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Invoice Created" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1878312078">The invoice has been created.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save Shipment" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[items][${order_item_1}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[items][${order_item_1}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[items][${order_item_2}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[items][${order_item_2}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[items][${order_item_3}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[items][${order_item_3}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[comment_text]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[comment_text]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Shipment Created" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-348539683">The shipment has been created.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  </hashTree>

    
        <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="API Pool" enabled="true">
            <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
            <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
                <boolProp name="LoopController.continue_forever">false</boolProp>
                <stringProp name="LoopController.loops">${loops}</stringProp>
            </elementProp>
            <stringProp name="ThreadGroup.num_threads">${apiPoolUsers}</stringProp>
            <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
            <longProp name="ThreadGroup.start_time">1505803944000</longProp>
            <longProp name="ThreadGroup.end_time">1505803944000</longProp>
            <boolProp name="ThreadGroup.scheduler">false</boolProp>
            <stringProp name="ThreadGroup.duration"/>
            <stringProp name="ThreadGroup.delay"/>
        <stringProp name="TestPlan.comments">tool/fragments/_system/thread_group.jmx</stringProp></ThreadGroup>
        <hashTree>
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="API" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${apiBasePercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "API");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^.{10,}$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="API Create Customer" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">100</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "API Create Customer");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create customer" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
    "customer": {&#xD;
&#xD;
        "email": "customer_${__time()}-${__threadNum}-${__Random(1,1000000)}@example.com",&#xD;
        "firstname": "test_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
        "lastname": "Doe"&#xD;
    },&#xD;
    "password": "test@123"&#xD;
}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/customers</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/create_customer.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract customer id" enabled="true">
        <stringProp name="VAR">customer_id</stringProp>
        <stringProp name="JSONPATH">$.id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer id not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">customer_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check customer" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/customers/${customer_id}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/check_customer.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.id</stringProp>
        <stringProp name="EXPECTED_VALUE">${customer_id}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="API Catalog Browsing" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">100</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "API Catalog Browsing");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get categories" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/categories</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_categories.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract search category id" enabled="true">
        <stringProp name="VAR">search_category_id</stringProp>
        <stringProp name="JSONPATH">$.id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert search category id is not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">search_category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/categories/${search_category_id}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get products" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[page_size]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">20</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[current_page]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[current_page]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_products.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="API Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">100</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "API Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search for simple product on frontend" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[request_name]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">quick_search_container</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[request_name]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">search_term</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Simple</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[page_size]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">20</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[current_page]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[current_page]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/search</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/search_for_product_frontend.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert results are present" enabled="true">
        <stringProp name="JSON_PATH">$.total_count</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract search product id" enabled="true">
        <stringProp name="VAR">search_product_id</stringProp>
        <stringProp name="JSONPATH">$.items[0].id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert search product id is not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">search_product_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="API Checkout" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">100</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "API Checkout");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Get region data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">
      vars.put("alabama_region_id", props.get("alabama_region_id"));
      vars.put("california_region_id", props.get("california_region_id"));
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_region_data.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create quote" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/create_quote.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">quote_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add product to quote" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
	"cartItem": {&#xD;
		"sku": "${product_sku}",&#xD;
		"qty":"1",&#xD;
		"quote_id":"${quote_id}"&#xD;
	}&#xD;
}&#xD;
</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/${quote_id}/items</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/add_product_to_quote_hardwired_sku.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.sku</stringProp>
        <stringProp name="EXPECTED_VALUE">${product_sku}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check products in quote" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/${quote_id}/items</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/check_product_in_quote_hardwired_sku.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$[0].sku</stringProp>
        <stringProp name="EXPECTED_VALUE">${product_sku}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Guest Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/create_guest_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">cart_id</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Guest Cart Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">cart_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add product to Guest Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
	"cartItem": {&#xD;
		"sku": "${product_sku}",&#xD;
		"qty":"1",&#xD;
		"quote_id":"${cart_id}"&#xD;
	}&#xD;
}&#xD;
</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/items</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/add_product_to_guest_cart_hardwired_sku.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.quote_id</stringProp>
        <stringProp name="EXPECTED_VALUE">^[a-z0-9-]+$</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Gift Message to Guest Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
	"sender": "John Doe",&#xD;
	"recipient": "Jane Roe",&#xD;
	"giftMessage": "Gift Message Text"&#xD;
}&#xD;
</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/gift-message</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/add_gift_message_to_guest_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$</stringProp>
        <stringProp name="EXPECTED_VALUE">true</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Estimate Shipping Methods" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"address":{"country_id":"US","postcode":"95630"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/estimate-shipping-methods</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_estimate_shipping_methods_with_postal_code.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1224567411">"available":true</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Billing/Shipping Information" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"addressInformation":{"shipping_address":{"countryId":"US","regionId":"${california_region_id}","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/shipping-information</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_billing_shipping_information.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1494218646">{"payment_methods":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Payment Info/Place Order" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"cartId":"${cart_id}","email":"test@example.com","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"countryId":"US","regionId":"${california_region_id}","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname","save_in_address_book":0}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/payment-information</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/checkout_payment_info_place_order.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-297987887">"[0-9]+"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">order_id</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">order_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="API Product Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">100</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "API Product Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create product" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
    "product": {&#xD;
        "sku": "psku-test-${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
        "name": "Product_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
        "attributeSetId": 4&#xD;
    }&#xD;
}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/create_product_no_custom_attributes.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product id" enabled="true">
        <stringProp name="VAR">simple_product_id</stringProp>
        <stringProp name="JSONPATH">$.id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product sku" enabled="true">
        <stringProp name="VAR">simple_product_sku</stringProp>
        <stringProp name="JSONPATH">$.sku</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract stock item id" enabled="true">
        <stringProp name="VAR">simple_stock_item_id</stringProp>
        <stringProp name="JSONPATH">$.extension_attributes.stock_item.item_id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product id not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">simple_product_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product sku not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">simple_product_sku</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert stock item id not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">simple_stock_item_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Update product stock info" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
        "stock_item": {   &#xD;
        	"manage_stock": 1,    &#xD;
        	"is_in_stock": 1,&#xD;
          "qty": ${simple_product_id}&#xD;
        }&#xD;
    }</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/${simple_product_sku}/stockItems/${simple_stock_item_id}</stringProp>
      <stringProp name="HTTPSampler.method">PUT</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/update_product_stock_info.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$</stringProp>
        <stringProp name="EXPECTED_VALUE">${simple_stock_item_id}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check product" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/${simple_product_sku}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/check_product.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert product sku" enabled="true">
        <stringProp name="JSON_PATH">$.sku</stringProp>
        <stringProp name="EXPECTED_VALUE">${simple_product_sku}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert product id" enabled="true">
        <stringProp name="JSON_PATH">$.id</stringProp>
        <stringProp name="EXPECTED_VALUE">${simple_product_id}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert stock item id" enabled="true">
        <stringProp name="JSON_PATH">$.extension_attributes.stock_item.item_id</stringProp>
        <stringProp name="EXPECTED_VALUE">${simple_stock_item_id}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert updated quantity" enabled="true">
        <stringProp name="JSON_PATH">$.extension_attributes.stock_item.qty</stringProp>
        <stringProp name="EXPECTED_VALUE">${simple_product_id}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create product with extensible data objects" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
    "product": {&#xD;
        "sku": "apsku-test-${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
        "name": "Extensible_Product_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
        "visibility": "4",&#xD;
        "type_id": "simple",&#xD;
        "price": "3.62",&#xD;
        "status": "1",&#xD;
        "attribute_set_id": "4",&#xD;
        "custom_attributes": [&#xD;
            {&#xD;
                "attribute_code": "cost",&#xD;
                "value": ""&#xD;
            },&#xD;
            {&#xD;
                "attribute_code": "description",&#xD;
                "value": "Description"&#xD;
            }&#xD;
        ],&#xD;
        "extension_attributes":{&#xD;
		"stock_item":{&#xD;
		"manage_stock": 1,    &#xD;
		"is_in_stock": 1,&#xD;
		"qty":"100"&#xD;
		}&#xD;
    	   }        ,&#xD;
    	   "media_gallery_entries":&#xD;
    	   	[{&#xD;
    	   		"id": null,&#xD;
    	   		"label":"test_label_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
    	   		"position":1,&#xD;
    	   		"disabled":0,&#xD;
    	   		"media_type":"image",&#xD;
    	   		"types":["image"],&#xD;
    	   		"content":{&#xD;
    	   			"base64_encoded_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0aHBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCABgAGADASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iioLy8t9Ps5bu7lWKCIZd26KKaTbshpX0RPRXN/8J/4V/6DVv8Ak3+FH/Cf+Ff+g1b/AJN/hXR9SxP/AD7l9zNPYVf5X9x0lFc3/wAJ/wCFf+g1b/k3+FH/AAn/AIV/6DVv+Tf4UfUsT/z7l9zD2FX+V/cdJRXN/wDCf+Ff+g1b/k3+FH/Cf+Ff+g1b/k3+FH1LE/8APuX3MPYVf5X9x0lFc3/wn/hX/oNW/wCTf4Uf8J/4V/6DVv8Ak3+FH1LE/wDPuX3MPYVf5X9x0lFVdP1G01WyS8sZ1nt3JCyL0ODg/qKtVzyi4u0lZmbTTswrm/H3/Iiav/1x/wDZhXSVzfj7/kRNX/64/wDswrowf+80/wDEvzNKH8WPqj5voorB1zS7OLT7m7SHE5YNu3HqWGeM471+kYutOhSdSEU7Jt3dtF20f6H1FacqcHJK9vO36M3qKzTa6foqPdxwlWxswrFi2T0AJ9aRdVmjkT7XYSW8TsFEm8MAT0yB0qfrcafu1tJeV2l2u7K3zsL2yjpPR+V3+NjTorPn1GVbt7a1s2uJIwDJ84ULnpyaik1SWTTrp47Z0uIQRJGzAFOPvZ70Sx1GLau9L9H03SdrNrsgdeCuu3k+hq0VR0ma4msImuIih2LtYvuLjA+b2zV6uijUVWmprqaQkpxUl1PoP4Xf8iBYf78v/oxq7GuO+F3/ACIFh/vy/wDoxq7GvzTMf98q/wCJ/mfLYn+NP1YVzfj7/kRNX/64/wDswrpK5vx9/wAiJq//AFx/9mFRg/8Aeaf+JfmTQ/ix9UfN9ZniD/kB3H/Af/QhWnTZI45kKSIroeqsMg1+l4mk61GdNfaTX3o+pqw54Sj3Rma/GXsI3BcLFMruU+8F5yR+dUZ4tOeNFOq3tx5jACNZg5J+mK6PrUMdrbxPvjgiR/7yoAa48TgPa1HNW1STvfp2s1+JjVw/PJy017mbe/YTqTB7iWzuQgPmhtocfjwajiupbjTtTieUXCxRsqTKMb8qePwrYlghnAE0UcgHQOoP86ckaRoERFVR/CowKbwU3UclJJO+19brqr203vvoHsJczd7J3/H8PmVNJnhm063WOVHZIkDhTkqcd/yNXajighg3eTFHHu67FAz+VSV2UIShTjGe67G9NOMUpbn0H8Lv+RAsP9+X/wBGNXY1x3wu/wCRAsP9+X/0Y1djX5tmP++Vf8T/ADPl8T/Gn6sK5vx9/wAiJq//AFx/9mFdJXN+Pv8AkRNX/wCuP/swqMH/ALzT/wAS/Mmh/Fj6o+b6KKK/Uj60KKKKACiiigAooooA+g/hd/yIFh/vy/8Aoxq7GuO+F3/IgWH+/L/6Mauxr8wzH/fKv+J/mfKYn+NP1YVzfj7/AJETV/8Arj/7MK6Sub8ff8iJq/8A1x/9mFRg/wDeaf8AiX5k0P4sfVHzfRRRX6kfWhRRRQAUUUUAFFFFAH0H8Lv+RAsP9+X/ANGNXY1x3wu/5ECw/wB+X/0Y1djX5hmP++Vf8T/M+UxP8afqwqC8s7fULOW0u4llglGHRujCp6K5E2ndGKdtUc3/AMIB4V/6Atv+bf40f8IB4V/6Atv+bf410lFdH13E/wDPyX3s09vV/mf3nN/8IB4V/wCgLb/m3+NH/CAeFf8AoC2/5t/jXSUUfXcT/wA/Jfew9vV/mf3nN/8ACAeFf+gLb/m3+NH/AAgHhX/oC2/5t/jXSUUfXcT/AM/Jfew9vV/mf3nN/wDCAeFf+gLb/m3+NH/CAeFf+gLb/m3+NdJRR9dxP/PyX3sPb1f5n95V0/TrTSrJLOxgWC3QkrGvQZOT+pq1RRXPKTk7yd2Zttu7P//Z",&#xD;
        "type": "image/jpeg",&#xD;
        "name": "test_image_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}.jpeg"&#xD;
    	   			}&#xD;
    	   	}&#xD;
    	   	]&#xD;
    }&#xD;
}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/create_product_with_extensible_data_objects.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product id" enabled="true">
        <stringProp name="VAR">simple_product_id</stringProp>
        <stringProp name="JSONPATH">$.id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product sku" enabled="true">
        <stringProp name="VAR">simple_product_sku</stringProp>
        <stringProp name="JSONPATH">$.sku</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract stock item id" enabled="true">
        <stringProp name="VAR">simple_stock_item_id</stringProp>
        <stringProp name="JSONPATH">$.extension_attributes.stock_item.item_id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product id not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">simple_product_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert product sku not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^[a-z0-9-]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">simple_product_sku</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert stock item id not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">simple_stock_item_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check product with extensible data objects" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/${simple_product_sku}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/check_product_with_extensible_data_objects.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert product sku" enabled="true">
        <stringProp name="JSON_PATH">$.sku</stringProp>
        <stringProp name="EXPECTED_VALUE">${simple_product_sku}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert product id" enabled="true">
        <stringProp name="JSON_PATH">$.id</stringProp>
        <stringProp name="EXPECTED_VALUE">${simple_product_id}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert stock item id" enabled="true">
        <stringProp name="JSON_PATH">$.extension_attributes.stock_item.item_id</stringProp>
        <stringProp name="EXPECTED_VALUE">${simple_stock_item_id}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert updated quantity" enabled="true">
        <stringProp name="JSON_PATH">$.extension_attributes.stock_item.qty</stringProp>
        <stringProp name="EXPECTED_VALUE">100</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  </hashTree>

  </hashTree>

    
        <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="GraphQL Pool" enabled="true">
            <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
            <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
                <boolProp name="LoopController.continue_forever">false</boolProp>
                <stringProp name="LoopController.loops">${loops}</stringProp>
            </elementProp>
            <stringProp name="ThreadGroup.num_threads">${graphQLPoolUsers}</stringProp>
            <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
            <longProp name="ThreadGroup.start_time">1505803944000</longProp>
            <longProp name="ThreadGroup.end_time">1505803944000</longProp>
            <boolProp name="ThreadGroup.scheduler">false</boolProp>
            <stringProp name="ThreadGroup.duration"/>
            <stringProp name="ThreadGroup.delay"/>
        <stringProp name="TestPlan.comments">tool/fragments/_system/thread_group.jmx</stringProp></ThreadGroup>
        <hashTree>
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get List of Products by category_id" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetListOfProductsByCategoryIdPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get List of Products by category_id");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get List of Products by category_id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query category($id: Int!, $currentPage: Int, $pageSize: Int) {\n  category(id: $id) {\n    product_count\n    description\n    url_key\n    name\n    id\n    breadcrumbs {\n      category_name\n      category_url_key\n      __typename\n    }\n    products(pageSize: $pageSize, currentPage: $currentPage, sort: {name: ASC}) {\n      total_count\n      items {\n        id\n        name\n        # small_image\n        # short_description\n        url_key\n        special_price\n        special_from_date\n        special_to_date\n        price {\n          regularPrice {\n            amount {\n              value\n              currency\n              __typename\n            }\n            __typename\n          }\n          __typename\n        }\n        __typename\n      }\n      __typename\n    }\n    __typename\n  }\n}\n","variables":{"id":${category_id},"currentPage":1,"pageSize":12},"operationName":"category"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_list_of_products_by_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"name":"${category_name}","id":${category_id},</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Simple Product Details by product_url_key" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetSimpleProductDetailsByProductUrlKeyPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Simple Product Details by product_url_key");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Simple Product Details by product_url_key" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_simple_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Simple Product Details by name" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetSimpleProductDetailsByNamePercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Simple Product Details by name");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Simple Product Details by name" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($product_sku: String, $onServer: Boolean!) {\n    productDetail: products(filter: { sku: { eq: $product_sku } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"product_sku":"${product_sku}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_simple_product_details_by_name.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Configurable Product Detail by product_url_key" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetConfigurableProductDetailsByProductUrlKeyPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Configurable Product Detail by product_url_key");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Details by product_url_key" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_configurable_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Configurable Product Detail by name" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetConfigurableProductDetailsByNamePercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Configurable Product Detail by name");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Details by name" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetailByName($product_sku: String, $onServer: Boolean!) {\n    products(filter: { sku: { eq: $product_sku } }, sort: {name: ASC}) {\n        items {\n            id\n            sku\n            name\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        #fashion_color\n                        #fashion_size\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"product_sku":"${product_sku}","onServer":false},"operationName":"productDetailByName"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_configurable_product_details_by_name.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Product Search by text and category_id" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetProductSearchByTextAndCategoryIdPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Product Search by text and category_id");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Product Search by text and category_id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productSearch($inputText: String!, $categoryId: String) {\n    products(\n   pageSize:12\n    search: $inputText, filter: { category_id: { eq: $categoryId } }, sort: {name: ASC}) {\n        items {\n            id\n            name\n            small_image {\n              label\n              url\n            }\n            url_key\n            price {\n                regularPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                }\n            }\n        }\n        total_count\n        filters {\n            name\n            filter_items_count\n            request_var\n            filter_items {\n                label\n                value_string\n            }\n        }\n    }\n}","variables":{"inputText":"Product","categoryId":"${category_id}"},"operationName":"productSearch"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_product_search_by_text_and_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_search_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_search_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Category List by category_id" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetCategoryListByCategoryIdPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Category List by category_id");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Category List by category_id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
            {"query":"query categoryList($id: Int!) {\n    category(id: $id) {\n        id\n        children {\n            id\n            name\n            url_key\n            url_path\n            children_count\n            path\n            image\n            productImagePreview: products(pageSize: 1, sort: {name: ASC}) {\n                items {\n                    small_image {\n                      label\n                      url\n                    }\n                }\n            }\n        }\n    }\n}","variables":{"id":${category_id}},"operationName":"categoryList"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_category_list_by_category_id.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Assert found categories" enabled="true">
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey"/>
        <stringProp name="script">var category = vars.getObject("category");
var response = JSON.parse(prev.getResponseDataAsString());

assertCategoryId(category, response);
assertCategoryChildren(category, response);

function assertCategoryId(category, response) {
    if (response.data == undefined || response.data.category == undefined || response.data.category.id != category.id) {
      AssertionResult.setFailureMessage("Cannot find category with id \"" + category.id + "\"");
      AssertionResult.setFailure(true);
     }
}

function assertCategoryChildren(category, response) {
    foundCategory = response.data &amp;&amp; response.data.category ? response.data.category : null;
    if (foundCategory) {
        var childrenFound = foundCategory.children.map(function (c) {return parseInt(c.id)});
        var children = category.children.map(function (c) {return parseInt(c)});
        if (JSON.stringify(children.sort()) != JSON.stringify(childrenFound.sort())) {
           AssertionResult.setFailureMessage("Cannot math children categories \"" + JSON.stringify(children) + "\" for to found one: \"" + JSON.stringify(childrenFound) +  "\"");
           AssertionResult.setFailure(true);
        }
    }
 
}

</stringProp>
      </JSR223Assertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Category List by category_url_key" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetCategoryListByCategoryIdPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Category List by category_url_key");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Category List by category_url_key" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query" : "{\n categoryList(filters:{url_key: {in: [\"${category_url_key}\"]}}) {\n  id\n  children {\n   id\n   name\n   url_key\n   url_path\n   children_count\n   path\n   image\n   productImagePreview: products(pageSize: 1, sort: {name: ASC}) {\n    items {\n     small_image {\n       label\n       url\n     }\n    }\n   }\n  }\n }\n}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_category_list_by_category_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Assert found categories" enabled="true">
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey"/>
        <stringProp name="script">var category = vars.getObject("category");
var response = JSON.parse(prev.getResponseDataAsString());

assertCategoryId(category, response);
assertCategoryChildren(category, response);

function assertCategoryId(category, response) {
    if (response.data == undefined || response.data.categoryList == undefined || response.data.categoryList[0].id != category.id) {
      AssertionResult.setFailureMessage("Cannot find category with id \"" + category.id + "\"");
      AssertionResult.setFailure(true);
     }
}

function assertCategoryChildren(category, response) {
    foundCategory = response.data &amp;&amp; response.data.categoryList ? response.data.categoryList[0] : null;
    if (foundCategory) {
        var childrenFound = foundCategory.children.map(function (c) {return parseInt(c.id)});
        var children = category.children.map(function (c) {return parseInt(c)});
        if (JSON.stringify(children.sort()) != JSON.stringify(childrenFound.sort())) {
           AssertionResult.setFailureMessage("Cannot math children categories \"" + JSON.stringify(children) + "\" for to found one: \"" + JSON.stringify(childrenFound) +  "\"");
           AssertionResult.setFailure(true);
        }
    }
 
}

</stringProp>
      </JSR223Assertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Multiple Categories" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetCategoryListByCategoryIdPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Multiple Categories");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");

var numbers = [];

var sanity = 0;
for(var i = 0; i &lt; 4; i++){
	sanity++;
	if(sanity &gt; 100){
		break;
	}
	var number = random.nextInt(categories.length)
	if(numbers.indexOf(number) &gt;= 0){
		i--;
		continue;
	}
	numbers.push(number);
}

vars.put("category_id_1", categories[numbers[0]].id);
vars.put("category_id_2", categories[numbers[1]].id);
vars.put("category_id_3", categories[numbers[2]].id);
vars.put("category_id_4", categories[numbers[3]].id);
</stringProp>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_multiple_categories_setup.jmx</stringProp>
    </JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get multiple categories by ID" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query" : "{\n categoryList(filters:{ids: {in: [\"${category_id_1}\", \"${category_id_2}\", \"${category_id_3}\", \"${category_id_4}\"]}}) {\n  id\n  children {\n   id\n   name\n   url_key\n   url_path\n   children_count\n   path\n   image\n   productImagePreview: products(pageSize: 1, sort: {name: ASC}) {\n    items {\n     small_image {\n       label\n       url\n     }\n    }\n   }\n  }\n }\n}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_multiple_categories_by_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Assert category count" enabled="true">
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey"/>
        <stringProp name="script">var response = JSON.parse(prev.getResponseDataAsString());

if(response.data == undefined || response.data.categoryList == undefined){
	AssertionResult.setFailureMessage("CategoryList results are empty.");
	AssertionResult.setFailure(true);
}

if(response.data.categoryList.length !== 4){
	AssertionResult.setFailureMessage("CategoryList query expected to find 4 categories. " + response.data.categoryList.length + " returned.");
	AssertionResult.setFailure(true);
}
</stringProp>
      </JSR223Assertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Categories Query: Get Multiple Categories By Id" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetCategoryListByCategoryIdPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Categories Query: Get Multiple Categories By Id");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");

var numbers = [];

var sanity = 0;
for(var i = 0; i &lt; 4; i++){
	sanity++;
	if(sanity &gt; 100){
		break;
	}
	var number = random.nextInt(categories.length)
	if(numbers.indexOf(number) &gt;= 0){
		i--;
		continue;
	}
	numbers.push(number);
}

vars.put("category_id_1", categories[numbers[0]].id);
vars.put("category_id_2", categories[numbers[1]].id);
vars.put("category_id_3", categories[numbers[2]].id);
vars.put("category_id_4", categories[numbers[3]].id);
</stringProp>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_multiple_categories_setup.jmx</stringProp>
    </JSR223Sampler>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="[categories query] Get multiple categories by ID" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"query" : "{\n  categories(filters:{ids: {in: [\"${category_id_1}\", \"${category_id_2}\", \"${category_id_3}\", \"${category_id_4}\"]}}) {\n  total_count\n  page_info {\n    total_pages\n    current_page\n    page_size\n  }\n  items{\n   id\n   children {\n    id\n    name\n    url_key\n    url_path\n    children_count\n    path\n    image\n    productImagePreview: products(pageSize: 1, sort: {name: ASC}) {\n     items {\n      small_image {\n        label\n        url\n      }\n     }\n    }\n   }\n  }\n }\n}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/categories_query_get_multiple_categories_by_id.jmx</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Assert category count" enabled="true">
          <stringProp name="scriptLanguage">javascript</stringProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="cacheKey"/>
          <stringProp name="script">var response = JSON.parse(prev.getResponseDataAsString());

if(response.data == undefined || response.data.categories == undefined){
	AssertionResult.setFailureMessage("Categories result is empty.");
	AssertionResult.setFailure(true);
}

if(response.data.categories.items.length !== 4){
	AssertionResult.setFailureMessage("Categories query expected to find 4 categories. " + response.data.categories.items.length + " returned.");
	AssertionResult.setFailure(true);
}
</stringProp>
        </JSR223Assertion>
        <hashTree/>
      </hashTree>
    </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Categories Query: Get Many Categories with Pagination" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetCategoryListByCategoryIdPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Categories Query: Get Many Categories with Pagination");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="[categories query] Get many categories by name" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"query" : "{\n  categories(filters:{name: {match: \"Category\"}}) {\n  total_count\n  page_info {\n    total_pages\n    current_page\n    page_size\n  }\n  items{\n   id\n   children {\n    id\n    name\n    url_key\n    url_path\n    children_count\n    path\n    image\n    productImagePreview: products(pageSize: 1, sort: {name: ASC}) {\n     items {\n      small_image {\n        label\n        url\n      }\n     }\n    }\n   }\n  }\n }\n}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/categories_query_get_many_categories_by_name_match.jmx</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Assert category count" enabled="true">
          <stringProp name="scriptLanguage">javascript</stringProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="cacheKey"/>
          <stringProp name="script">var response = JSON.parse(prev.getResponseDataAsString());

if(response.data == undefined || response.data.categories == undefined){
	AssertionResult.setFailureMessage("Categories result is empty.");
	AssertionResult.setFailure(true);
}

if(response.data.categories.items.length != 20){
	AssertionResult.setFailureMessage("Categories query expected to find 20 categories. " + response.data.categories.items.length + " returned.");
	AssertionResult.setFailure(true);
}
</stringProp>
        </JSR223Assertion>
        <hashTree/>
      </hashTree>
    </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Url Info by url_key" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlUrlInfoByUrlKeyPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Url Info by url_key");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Url Info by url_key" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">&#xD;
            {"query":"query resolveUrl($urlKey: String!) {\n    urlResolver(url: $urlKey) {\n        type\n        id\n    }\n}","variables":{"urlKey":"${category_url_key}${url_suffix}"},"operationName":"resolveUrl"}&#xD;
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_url_info_by_url_key.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1062388959">{"type":"CATEGORY","id":${category_id}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Cms Page by id" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetCmsPageByIdPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Cms Page by id");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare CMS Page" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var cmsPages = props.get("cms_pages");
var number = random.nextInt(cmsPages.length);

vars.put("cms_page_id", cmsPages[number].id);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/prepare_cms_page.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cms Page by id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
           {"query":"query getCmsPage($id: Int!, $onServer: Boolean!) {\n  cmsPage(id: $id) {\n    url_key\n    content\n    content_heading\n    title\n    page_layout\n    meta_title @include(if: $onServer)\n    meta_keywords @include(if: $onServer)\n    meta_description @include(if: $onServer)\n  }\n}","variables":{"id":${cms_page_id},"onServer":false},"operationName":"getCmsPage"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_get_cms_page_by_id.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.cmsPage.url_key</stringProp>
        <stringProp name="EXPECTED_VALUE">${cms_page_id}</stringProp>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Navigation Menu by category_id" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetNavigationMenuByCategoryIdPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Navigation Menu by category_id");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Navigation Menu by category_id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query navigationMenu($id: Int!) {\n  category(id: $id) {\n    id\n    name\n    product_count\n    path\n    children {\n      id\n      name\n      position\n      level\n      url_key\n      url_path\n      product_count\n      children_count\n      path\n      productImagePreview: products(pageSize: 1, sort: {name: ASC}) {\n        items {\n          small_image {\n            label\n             url\n          }\n        }\n      }\n    }\n  }\n}","variables":{"id":${category_id}},"operationName":"navigationMenu"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_navigation_menu_by_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"id":${category_id},"name":"${category_name}","product_count"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Create Empty Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlCreateEmptyCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Create Empty Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Get Empty Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlGetEmptyCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Get Empty Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1901638450">{"data":{"cart":{"items":[]}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Set Shipping Address On Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlSetShippingAddressOnCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Set Shipping Address On Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1901638450">{"data":{"cart":{"items":[]}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Shipping Address On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setShippingAddressesOnCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      shipping_addresses: [\n        {\n          address: {\n            firstname: \"test firstname\"\n            lastname: \"test lastname\"\n            company: \"test company\"\n            street: [\"test street 1\", \"test street 2\"]\n            city: \"test city\"\n            region: \"AZ\"\n            postcode: \"887766\"\n            country_code: \"US\"\n            telephone: \"88776655\"\n            save_in_address_book: false\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      shipping_addresses {\n        firstname\n        lastname\n        company\n        street\n        city\n        postcode\n        telephone\n        country {\n          code\n          label\n        }\n        }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_shipping_address_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1671866339">{"data":{"setShippingAddressesOnCart":{"cart":{"shipping_addresses":[{"firstname":"test firstname","lastname":"test lastname","company":"test company","street":["test street 1","test street 2"],"city":"test city","postcode":"887766","telephone":"88776655","country":{"code":"US","label":"US"}}]}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Set Billing Address On Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlSetBillingAddressOnCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Set Billing Address On Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1901638450">{"data":{"cart":{"items":[]}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Billing Address On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setBillingAddressOnCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      billing_address: {\n        address: {\n          firstname: \"test firstname\"\n          lastname: \"test lastname\"\n          company: \"test company\"\n          street: [\"test street 1\", \"test street 2\"]\n          city: \"test city\"\n          region: \"AZ\"\n          postcode: \"887766\"\n          country_code: \"US\"\n          telephone: \"88776655\"\n          save_in_address_book: false\n        }\n      }\n    }\n  ) {\n    cart {\n      billing_address {\n        firstname\n        lastname\n        company\n        street\n        city\n        postcode\n        telephone\n        country {\n          code\n          label\n        }\n        }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_billing_address_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1147076914">{"data":{"setBillingAddressOnCart":{"cart":{"billing_address":{"firstname":"test firstname","lastname":"test lastname","company":"test company","street":["test street 1","test street 2"],"city":"test city","postcode":"887766","telephone":"88776655","country":{"code":"US","label":"US"}}}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Add Simple Product To Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlAddSimpleProductToCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Add Simple Product To Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Simple Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {  \n  addSimpleProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          data: {\n            quantity: 2\n            sku: \"${product_sku}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        quantity\n        product {\n          sku\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/add_simple_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addSimpleProductsToCart</stringProp>
          <stringProp name="-1173443935">"sku":"${product_sku}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Add Configurable Product To Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlAddConfigurableProductToCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Add Configurable Product To Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Details by name" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetailByName($product_sku: String, $onServer: Boolean!) {\n    products(filter: { sku: { eq: $product_sku } }, sort: {name: ASC}) {\n        items {\n            id\n            sku\n            name\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        #fashion_color\n                        #fashion_size\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"product_sku":"${product_sku}","onServer":false},"operationName":"productDetailByName"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_configurable_product_details_by_name.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract Configurable Product option" enabled="true">
      <stringProp name="VAR">product_option</stringProp>
      <stringProp name="JSONPATH">$.data.products.items[0].variants[0].product.sku</stringProp>
      <stringProp name="DEFAULT"/>
      <stringProp name="VARIABLE"/>
      <stringProp name="SUBJECT">BODY</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/extract_configurable_product_option.jmx</stringProp></com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Configurable Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  addConfigurableProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          variant_sku: \"${product_option}\"\n          data: {\n            quantity: 2\n            sku: \"${product_option}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        id\n        quantity\n        product {\n          name\n          sku\n        }\n        ... on ConfigurableCartItem {\n          configurable_options {\n            option_label\n          }\n        }\n    }\n  }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/add_configurable_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addConfigurableProductsToCart</stringProp>
          <stringProp name="675049292">"sku":"${product_option}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Update Simple Product Qty In Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlUpdateSimpleProductQtyInCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Update Simple Product Qty In Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Simple Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {  \n  addSimpleProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          data: {\n            quantity: 2\n            sku: \"${product_sku}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        quantity\n        product {\n          sku\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/add_simple_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addSimpleProductsToCart</stringProp>
          <stringProp name="-1173443935">"sku":"${product_sku}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract item id" enabled="true">
        <stringProp name="VAR">item_id</stringProp>
        <stringProp name="JSONPATH">$.data.cart.items[0].id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1486007127">{"data":{"cart":{"items":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Update Simple Product qty In Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  updateCartItems(input: {\n    cart_id: \"${quote_id}\"\n    cart_items: [\n      {\n        cart_item_id: ${item_id}\n        quantity: 5\n      }\n    ]\n  }) {\n    cart {\n      items {\n        id\n        quantity\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/update_simple_product_qty_in_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="664196114">{"data":{"updateCartItems":{"cart":{"items":[{"id":"${item_id}","quantity":5}]}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Update Configurable Product Qty In Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlUpdateConfigurableProductQtyInCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Update Configurable Product Qty In Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Details by name" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetailByName($product_sku: String, $onServer: Boolean!) {\n    products(filter: { sku: { eq: $product_sku } }, sort: {name: ASC}) {\n        items {\n            id\n            sku\n            name\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        #fashion_color\n                        #fashion_size\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"product_sku":"${product_sku}","onServer":false},"operationName":"productDetailByName"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_configurable_product_details_by_name.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract Configurable Product option" enabled="true">
      <stringProp name="VAR">product_option</stringProp>
      <stringProp name="JSONPATH">$.data.products.items[0].variants[0].product.sku</stringProp>
      <stringProp name="DEFAULT"/>
      <stringProp name="VARIABLE"/>
      <stringProp name="SUBJECT">BODY</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/extract_configurable_product_option.jmx</stringProp></com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Configurable Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  addConfigurableProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          variant_sku: \"${product_option}\"\n          data: {\n            quantity: 2\n            sku: \"${product_option}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        id\n        quantity\n        product {\n          name\n          sku\n        }\n        ... on ConfigurableCartItem {\n          configurable_options {\n            option_label\n          }\n        }\n    }\n  }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/add_configurable_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addConfigurableProductsToCart</stringProp>
          <stringProp name="675049292">"sku":"${product_option}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract item id" enabled="true">
        <stringProp name="VAR">item_id</stringProp>
        <stringProp name="JSONPATH">$.data.cart.items[0].id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1486007127">{"data":{"cart":{"items":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Update Configurable Product qty In Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  updateCartItems(input: {\n    cart_id: \"${quote_id}\"\n    cart_items: [\n      {\n        cart_item_id: ${item_id}\n        quantity: 5\n      }\n    ]\n  }) {\n    cart {\n      items {\n        id\n        quantity\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/update_configurable_product_qty_in_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="664196114">{"data":{"updateCartItems":{"cart":{"items":[{"id":"${item_id}","quantity":5}]}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Update Simple Product Qty In Cart with Prices" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlUpdateSimpleProductQtyInCartWithPricesPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Update Simple Product Qty In Cart with Prices");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Simple Product To Cart With Prices" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {  \n  addSimpleProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          data: {\n            quantity: 2\n            sku: \"${product_sku}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        quantity\n        prices {\n          row_total{\n            value\n          }\n          total_item_discount {\n            currency\n            value\n          }\n          discounts {\n            amount {\n              currency\n              value\n            }\n            label\n          }\n          row_total_including_tax{\n            value\n          }\n        }\n        product {\n          sku\n        }\n      }\n      prices {\n      applied_taxes {\n        amount {\n          currency\n          value\n        }\n        label\n      }\n      discounts {\n        amount {\n          currency\n          value\n        }\n        label\n      }\n      grand_total {\n        currency\n        value\n      }\n      subtotal_excluding_tax {\n        value\n        currency\n      }\n      subtotal_including_tax {\n        value\n        currency\n      }\n      subtotal_with_discount_excluding_tax {\n        value\n        currency\n      }\n    }\n    }\n  }\n}\n","variables":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/add_simple_product_to_cart_with_prices.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addSimpleProductsToCart</stringProp>
          <stringProp name="-1173443935">"sku":"${product_sku}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cart With Prices" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      prices {\n        row_total{\n          value\n        }\n        row_total_including_tax{\n          value\n        }\n        total_item_discount{value}\n        discounts{\n          amount{value}\n          label\n        }\n      }\n      product {\n        sku\n      }\n    }\n    prices {\n      applied_taxes {\n        amount {\n          currency\n          value\n        }\n        label\n      }\n      discounts {\n        amount {\n          currency\n          value\n        }\n        label\n      }\n      grand_total {\n        currency\n        value\n      }\n      subtotal_excluding_tax {\n        value\n        currency\n      }\n      subtotal_including_tax {\n        value\n        currency\n      }\n      subtotal_with_discount_excluding_tax {\n        value\n        currency\n      }\n    }\n  }\n}\n","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_cart_with_prices.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract item id" enabled="true">
        <stringProp name="VAR">item_id</stringProp>
        <stringProp name="JSONPATH">$.data.cart.items[0].id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1486007127">{"data":{"cart":{"items":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Update Simple Product qty In Cart With Prices" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  updateCartItems(input: {\n    cart_id: \"${quote_id}\"\n    cart_items: [\n      {\n        cart_item_id: ${item_id}\n        quantity: 5\n      }\n    ]\n  }) {\n    cart {\n      items {\n        id\n        quantity\n        prices {\n          row_total{\n            value\n          }\n          total_item_discount {\n            currency\n            value\n          }\n          discounts {\n            amount {\n              currency\n              value\n            }\n            label\n          }\n          row_total_including_tax{\n            value\n          }\n        }\n        product {\n          sku\n        }\n      }\n      prices {\n      applied_taxes {\n        amount {\n          currency\n          value\n        }\n        label\n      }\n      discounts {\n        amount {\n          currency\n          value\n        }\n        label\n      }\n      grand_total {\n        currency\n        value\n      }\n      subtotal_excluding_tax {\n        value\n        currency\n      }\n      subtotal_including_tax {\n        value\n        currency\n      }\n      subtotal_with_discount_excluding_tax {\n        value\n        currency\n      }\n    }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/update_simple_product_qty_in_cart_with_prices.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">"quantity":5</stringProp>
          <stringProp name="675049292">"id":"${item_id}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Update Configurable Product Qty In Cart with Prices" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlUpdateConfigurableProductQtyInCartWithPricesPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Update Configurable Product Qty In Cart with Prices");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Details by name" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetailByName($product_sku: String, $onServer: Boolean!) {\n    products(filter: { sku: { eq: $product_sku } }, sort: {name: ASC}) {\n        items {\n            id\n            sku\n            name\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        #fashion_color\n                        #fashion_size\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"product_sku":"${product_sku}","onServer":false},"operationName":"productDetailByName"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_configurable_product_details_by_name.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract Configurable Product option" enabled="true">
      <stringProp name="VAR">product_option</stringProp>
      <stringProp name="JSONPATH">$.data.products.items[0].variants[0].product.sku</stringProp>
      <stringProp name="DEFAULT"/>
      <stringProp name="VARIABLE"/>
      <stringProp name="SUBJECT">BODY</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/extract_configurable_product_option.jmx</stringProp></com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Configurable Product To Cart With Prices" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  addConfigurableProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          variant_sku: \"${product_option}\"\n          data: {\n            quantity: 2\n            sku: \"${product_option}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        id\n        quantity\n        prices {\n              row_total{\n                value\n              }\n              total_item_discount {\n                currency\n                value\n              }\n              discounts {\n                amount {\n                  currency\n                  value\n                }\n                label\n              }\n              row_total_including_tax{\n                value\n              }\n            }\n        product {\n          name\n          sku\n        }\n        ... on ConfigurableCartItem {\n          configurable_options {\n            option_label\n          }\n        }\n    }\n    prices {\n          applied_taxes {\n            amount {\n              currency\n              value\n            }\n            label\n          }\n          discounts {\n            amount {\n              currency\n              value\n            }\n            label\n          }\n          grand_total {\n            currency\n            value\n          }\n          subtotal_excluding_tax {\n            value\n            currency\n          }\n          subtotal_including_tax {\n            value\n            currency\n          }\n          subtotal_with_discount_excluding_tax {\n            value\n            currency\n          }\n        }\n   }\n  }\n}\n","variables":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/add_configurable_product_to_cart_with_prices.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addConfigurableProductsToCart</stringProp>
          <stringProp name="675049292">"sku":"${product_option}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cart With Prices" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      prices {\n        row_total{\n          value\n        }\n        row_total_including_tax{\n          value\n        }\n        total_item_discount{value}\n        discounts{\n          amount{value}\n          label\n        }\n      }\n      product {\n        sku\n      }\n    }\n    prices {\n      applied_taxes {\n        amount {\n          currency\n          value\n        }\n        label\n      }\n      discounts {\n        amount {\n          currency\n          value\n        }\n        label\n      }\n      grand_total {\n        currency\n        value\n      }\n      subtotal_excluding_tax {\n        value\n        currency\n      }\n      subtotal_including_tax {\n        value\n        currency\n      }\n      subtotal_with_discount_excluding_tax {\n        value\n        currency\n      }\n    }\n  }\n}\n","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_cart_with_prices.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract item id" enabled="true">
        <stringProp name="VAR">item_id</stringProp>
        <stringProp name="JSONPATH">$.data.cart.items[0].id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1486007127">{"data":{"cart":{"items":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Update Configurable Product qty In Cart With Prices" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  updateCartItems(input: {\n    cart_id: \"${quote_id}\"\n    cart_items: [\n      {\n        cart_item_id: ${item_id}\n        quantity: 5\n      }\n    ]\n  }) {\n    cart {\n      items {\n        id\n        quantity\n        prices {\n              row_total{\n                value\n              }\n              total_item_discount {\n                currency\n                value\n              }\n              discounts {\n                amount {\n                  currency\n                  value\n                }\n                label\n              }\n              row_total_including_tax{\n                value\n              }\n            }\n        product {\n          name\n          sku\n        }\n        ... on ConfigurableCartItem {\n          configurable_options {\n            option_label\n          }\n        }\n    }\n    prices {\n          applied_taxes {\n            amount {\n              currency\n              value\n            }\n            label\n          }\n          discounts {\n            amount {\n              currency\n              value\n            }\n            label\n          }\n          grand_total {\n            currency\n            value\n          }\n          subtotal_excluding_tax {\n            value\n            currency\n          }\n          subtotal_including_tax {\n            value\n            currency\n          }\n          subtotal_with_discount_excluding_tax {\n            value\n            currency\n          }\n        }\n   }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/update_configurable_product_qty_in_cart_with_prices.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">"quantity":5</stringProp>
          <stringProp name="675049292">"id":"${item_id}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Remove Simple Product From Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlRemoveSimpleProductFromCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Remove Simple Product From Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Simple Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {  \n  addSimpleProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          data: {\n            quantity: 2\n            sku: \"${product_sku}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        quantity\n        product {\n          sku\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/add_simple_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addSimpleProductsToCart</stringProp>
          <stringProp name="-1173443935">"sku":"${product_sku}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract item id" enabled="true">
        <stringProp name="VAR">item_id</stringProp>
        <stringProp name="JSONPATH">$.data.cart.items[0].id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1486007127">{"data":{"cart":{"items":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Remove Simple Product From Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  removeItemFromCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_item_id: ${item_id}\n    }\n  ) {\n    cart {\n      items {\n        quantity\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/remove_simple_product_from_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1452665323">{"data":{"removeItemFromCart":{"cart":{"items":[]}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Remove Configurable Product From Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlRemoveConfigurableProductFromCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Remove Configurable Product From Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Details by name" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetailByName($product_sku: String, $onServer: Boolean!) {\n    products(filter: { sku: { eq: $product_sku } }, sort: {name: ASC}) {\n        items {\n            id\n            sku\n            name\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        #fashion_color\n                        #fashion_size\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"product_sku":"${product_sku}","onServer":false},"operationName":"productDetailByName"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_configurable_product_details_by_name.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract Configurable Product option" enabled="true">
      <stringProp name="VAR">product_option</stringProp>
      <stringProp name="JSONPATH">$.data.products.items[0].variants[0].product.sku</stringProp>
      <stringProp name="DEFAULT"/>
      <stringProp name="VARIABLE"/>
      <stringProp name="SUBJECT">BODY</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/extract_configurable_product_option.jmx</stringProp></com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Configurable Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  addConfigurableProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          variant_sku: \"${product_option}\"\n          data: {\n            quantity: 2\n            sku: \"${product_option}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        id\n        quantity\n        product {\n          name\n          sku\n        }\n        ... on ConfigurableCartItem {\n          configurable_options {\n            option_label\n          }\n        }\n    }\n  }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/add_configurable_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addConfigurableProductsToCart</stringProp>
          <stringProp name="675049292">"sku":"${product_option}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract item id" enabled="true">
        <stringProp name="VAR">item_id</stringProp>
        <stringProp name="JSONPATH">$.data.cart.items[0].id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1486007127">{"data":{"cart":{"items":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Remove Configurable Product From Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  removeItemFromCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_item_id: ${item_id}\n    }\n  ) {\n    cart {\n      items {\n        quantity\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/remove_configurable_product_from_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1452665323">{"data":{"removeItemFromCart":{"cart":{"items":[]}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Apply Coupon To Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlApplyCouponToCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Apply Coupon To Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Simple Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {  \n  addSimpleProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          data: {\n            quantity: 2\n            sku: \"${product_sku}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        quantity\n        product {\n          sku\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/add_simple_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addSimpleProductsToCart</stringProp>
          <stringProp name="-1173443935">"sku":"${product_sku}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Coupon Code Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var coupons = props.get("coupon_codes");
number = random.nextInt(coupons.length);

vars.put("coupon_code", coupons[number].code);
        </stringProp>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_coupon_code_setup.jmx</stringProp>
    </JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Apply Coupon To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  applyCouponToCart(input: {cart_id: \"${quote_id}\", coupon_code: \"${coupon_code}\"}) {\n    cart {\n      applied_coupon {\n        code\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/apply_coupon_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1026466978">{"data":{"applyCouponToCart":{"cart":{"applied_coupon":{"code":"${coupon_code}"}}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Remove Coupon From Cart" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlRemoveCouponFromCartPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Remove Coupon From Cart");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Simple Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {  \n  addSimpleProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          data: {\n            quantity: 2\n            sku: \"${product_sku}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        quantity\n        product {\n          sku\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/add_simple_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addSimpleProductsToCart</stringProp>
          <stringProp name="-1173443935">"sku":"${product_sku}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Coupon Code Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var coupons = props.get("coupon_codes");
number = random.nextInt(coupons.length);

vars.put("coupon_code", coupons[number].code);
        </stringProp>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_coupon_code_setup.jmx</stringProp>
    </JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Apply Coupon To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  applyCouponToCart(input: {cart_id: \"${quote_id}\", coupon_code: \"${coupon_code}\"}) {\n    cart {\n      applied_coupon {\n        code\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/apply_coupon_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1026466978">{"data":{"applyCouponToCart":{"cart":{"applied_coupon":{"code":"${coupon_code}"}}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Remove Coupon From Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  removeCouponFromCart(input: {cart_id: \"${quote_id}\"}) {\n    cart {\n      applied_coupon {\n        code\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/remove_coupon_from_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-76201335">{"data":{"removeCouponFromCart":{"cart":{"applied_coupon":null}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Catalog Browsing By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlCatalogBrowsingByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Catalog Browsing By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Navigation Menu by category_id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query navigationMenu($id: Int!) {\n  category(id: $id) {\n    id\n    name\n    product_count\n    path\n    children {\n      id\n      name\n      position\n      level\n      url_key\n      url_path\n      product_count\n      children_count\n      path\n      productImagePreview: products(pageSize: 1, sort: {name: ASC}) {\n        items {\n          small_image {\n            label\n             url\n          }\n        }\n      }\n    }\n  }\n}","variables":{"id":${category_id}},"operationName":"navigationMenu"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_navigation_menu_by_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"id":${category_id},"name":"${category_name}","product_count"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Product Search by text and category_id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productSearch($inputText: String!, $categoryId: String) {\n    products(\n   pageSize:12\n    search: $inputText, filter: { category_id: { eq: $categoryId } }, sort: {name: ASC}) {\n        items {\n            id\n            name\n            small_image {\n              label\n              url\n            }\n            url_key\n            price {\n                regularPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                }\n            }\n        }\n        total_count\n        filters {\n            name\n            filter_items_count\n            request_var\n            filter_items {\n                label\n                value_string\n            }\n        }\n    }\n}","variables":{"inputText":"Product","categoryId":"${category_id}"},"operationName":"productSearch"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_product_search_by_text_and_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_search_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_search_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Url Info by url_key" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">&#xD;
            {"query":"query resolveUrl($urlKey: String!) {\n    urlResolver(url: $urlKey) {\n        type\n        id\n    }\n}","variables":{"urlKey":"${category_url_key}${url_suffix}"},"operationName":"resolveUrl"}&#xD;
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_url_info_by_url_key.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1062388959">{"type":"CATEGORY","id":${category_id}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get List of Products by category_id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query category($id: Int!, $currentPage: Int, $pageSize: Int) {\n  category(id: $id) {\n    product_count\n    description\n    url_key\n    name\n    id\n    breadcrumbs {\n      category_name\n      category_url_key\n      __typename\n    }\n    products(pageSize: $pageSize, currentPage: $currentPage, sort: {name: ASC}) {\n      total_count\n      items {\n        id\n        name\n        # small_image\n        # short_description\n        url_key\n        special_price\n        special_from_date\n        special_to_date\n        price {\n          regularPrice {\n            amount {\n              value\n              currency\n              __typename\n            }\n            __typename\n          }\n          __typename\n        }\n        __typename\n      }\n      __typename\n    }\n    __typename\n  }\n}\n","variables":{"id":${category_id},"currentPage":1,"pageSize":12},"operationName":"category"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_list_of_products_by_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"name":"${category_name}","id":${category_id},</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Details by name" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetailByName($product_sku: String, $onServer: Boolean!) {\n    products(filter: { sku: { eq: $product_sku } }, sort: {name: ASC}) {\n        items {\n            id\n            sku\n            name\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        #fashion_color\n                        #fashion_size\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"product_sku":"${product_sku}","onServer":false},"operationName":"productDetailByName"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_configurable_product_details_by_name.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Details by product_url_key" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_configurable_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Simple Product Details by name" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($product_sku: String, $onServer: Boolean!) {\n    productDetail: products(filter: { sku: { eq: $product_sku } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"product_sku":"${product_sku}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_simple_product_details_by_name.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Simple Product Details by product_url_key" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_simple_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare CMS Page" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var cmsPages = props.get("cms_pages");
var number = random.nextInt(cmsPages.length);

vars.put("cms_page_id", cmsPages[number].id);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/prepare_cms_page.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cms Page by id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
           {"query":"query getCmsPage($id: Int!, $onServer: Boolean!) {\n  cmsPage(id: $id) {\n    url_key\n    content\n    content_heading\n    title\n    page_layout\n    meta_title @include(if: $onServer)\n    meta_keywords @include(if: $onServer)\n    meta_description @include(if: $onServer)\n  }\n}","variables":{"id":${cms_page_id},"onServer":false},"operationName":"getCmsPage"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_get_cms_page_by_id.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.cmsPage.url_key</stringProp>
        <stringProp name="EXPECTED_VALUE">${cms_page_id}</stringProp>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Checkout By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlCheckoutByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Checkout By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1901638450">{"data":{"cart":{"items":[]}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Details by name" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetailByName($product_sku: String, $onServer: Boolean!) {\n    products(filter: { sku: { eq: $product_sku } }, sort: {name: ASC}) {\n        items {\n            id\n            sku\n            name\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        #fashion_color\n                        #fashion_size\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"product_sku":"${product_sku}","onServer":false},"operationName":"productDetailByName"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_configurable_product_details_by_name.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract Configurable Product option" enabled="true">
      <stringProp name="VAR">product_option</stringProp>
      <stringProp name="JSONPATH">$.data.products.items[0].variants[0].product.sku</stringProp>
      <stringProp name="DEFAULT"/>
      <stringProp name="VARIABLE"/>
      <stringProp name="SUBJECT">BODY</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/extract_configurable_product_option.jmx</stringProp></com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Configurable Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  addConfigurableProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          variant_sku: \"${product_option}\"\n          data: {\n            quantity: 2\n            sku: \"${product_option}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        id\n        quantity\n        product {\n          name\n          sku\n        }\n        ... on ConfigurableCartItem {\n          configurable_options {\n            option_label\n          }\n        }\n    }\n  }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/add_configurable_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addConfigurableProductsToCart</stringProp>
          <stringProp name="675049292">"sku":"${product_option}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Simple Product To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {  \n  addSimpleProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          data: {\n            quantity: 2\n            sku: \"${product_sku}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        quantity\n        product {\n          sku\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/add_simple_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addSimpleProductsToCart</stringProp>
          <stringProp name="-1173443935">"sku":"${product_sku}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Billing Address On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setBillingAddressOnCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      billing_address: {\n        address: {\n          firstname: \"test firstname\"\n          lastname: \"test lastname\"\n          company: \"test company\"\n          street: [\"test street 1\", \"test street 2\"]\n          city: \"test city\"\n          region: \"AZ\"\n          postcode: \"887766\"\n          country_code: \"US\"\n          telephone: \"88776655\"\n          save_in_address_book: false\n        }\n      }\n    }\n  ) {\n    cart {\n      billing_address {\n        firstname\n        lastname\n        company\n        street\n        city\n        postcode\n        telephone\n        country {\n          code\n          label\n        }\n        }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_billing_address_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1147076914">{"data":{"setBillingAddressOnCart":{"cart":{"billing_address":{"firstname":"test firstname","lastname":"test lastname","company":"test company","street":["test street 1","test street 2"],"city":"test city","postcode":"887766","telephone":"88776655","country":{"code":"US","label":"US"}}}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Shipping Address On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setShippingAddressesOnCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      shipping_addresses: [\n        {\n          address: {\n            firstname: \"test firstname\"\n            lastname: \"test lastname\"\n            company: \"test company\"\n            street: [\"test street 1\", \"test street 2\"]\n            city: \"test city\"\n            region: \"AZ\"\n            postcode: \"887766\"\n            country_code: \"US\"\n            telephone: \"88776655\"\n            save_in_address_book: false\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      shipping_addresses {\n        firstname\n        lastname\n        company\n        street\n        city\n        postcode\n        telephone\n        country {\n          code\n          label\n        }\n        }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_shipping_address_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1671866339">{"data":{"setShippingAddressesOnCart":{"cart":{"shipping_addresses":[{"firstname":"test firstname","lastname":"test lastname","company":"test company","street":["test street 1","test street 2"],"city":"test city","postcode":"887766","telephone":"88776655","country":{"code":"US","label":"US"}}]}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Payment Method On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setPaymentMethodOnCart(input: {\n    cart_id: \"${quote_id}\", \n    payment_method: {\n      code: \"checkmo\"\n    }\n  }) {\n    cart {\n      selected_payment_method {\n        code\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_payment_method_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1830199373">{"data":{"setPaymentMethodOnCart":{"cart":{"selected_payment_method":{"code":"checkmo"}}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Current Shipping Address" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    shipping_addresses {\n      postcode\n      }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_current_shipping_address.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Shipping Method On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setShippingMethodsOnCart(input: \n    {\n      cart_id: \"${quote_id}\", \n      shipping_methods: [{\n        carrier_code: \"flatrate\"\n        method_code: \"flatrate\"\n      }]\n    }) {\n    cart {\n      shipping_addresses {\n        selected_shipping_method {\n          carrier_code\n          method_code\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_shipping_method_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="644143859">{"data":{"setShippingMethodsOnCart":{"cart":{"shipping_addresses":[{"selected_shipping_method":{"carrier_code":"flatrate","method_code":"flatrate"}}]}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Coupon Code Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var coupons = props.get("coupon_codes");
number = random.nextInt(coupons.length);

vars.put("coupon_code", coupons[number].code);
        </stringProp>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_coupon_code_setup.jmx</stringProp>
    </JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Apply Coupon To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  applyCouponToCart(input: {cart_id: \"${quote_id}\", coupon_code: \"${coupon_code}\"}) {\n    cart {\n      applied_coupon {\n        code\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/apply_coupon_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1026466978">{"data":{"applyCouponToCart":{"cart":{"applied_coupon":{"code":"${coupon_code}"}}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Remove Coupon From Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  removeCouponFromCart(input: {cart_id: \"${quote_id}\"}) {\n    cart {\n      applied_coupon {\n        code\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/remove_coupon_from_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-76201335">{"data":{"removeCouponFromCart":{"cart":{"applied_coupon":null}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="GraphQL Checkout A Large Bulk Of Products By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${graphqlCheckoutALargeBulkOfProductsByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "GraphQL Checkout A Large Bulk Of Products By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Of Simple And Configurable Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_total_simple_and_configurable_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalSimpleProductsAdded", "0");
vars.put("totalConfigurableProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1901638450">{"data":{"cart":{"items":[]}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Bulk Of Simple Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
simpleProductsAdded = Integer.parseInt(vars.get("totalSimpleProductsAdded"));
lastSimpleProduct = Integer.parseInt(vars.get("numberOfRelatedSimpleProductsInTheCart")) - 1;

product = props.get("simple_products_list").get(lastSimpleProduct);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));

simpleProductsAdded = simpleProductsAdded + 1;
vars.put("totalSimpleProductsAdded", String.valueOf(simpleProductsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup_large_bulk_of_products.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Bulk Of Simple Products to Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation{ addProductsToCart( cartId: \"${quote_id}\" cartItems: [{ sku: \"${product_sku}\" quantity: 1 }, ${related_product}] ){ cart{ id items{ product{ sku } quantity } } } }","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">8000000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">8000000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/large_number_of_products_in_the_card/add_simple_products_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2032239040">addProductsToCart</stringProp>
            <stringProp name="675049292">"sku":"${product_sku}"</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
      <hashTree/>
    
      <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Add Related Product Argument" enabled="true">
        <stringProp name="scriptLanguage">groovy</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey">true</stringProp>
                <stringProp name="script">
                    numberOfSimpleProducts = Integer.parseInt(vars.get("numberOfRelatedSimpleProductsInTheCart")) - 1;
                    def relatedProductSKUs = props.get('simple_products_list').take(numberOfSimpleProducts).inject('') {acc, prod -&gt; acc + '{ sku: \\"' + prod.get("sku") + '\\" quantity: 1 },' };
                    vars.put('related_product', relatedProductSKUs);

                    simpleProductsAdded = Integer.parseInt(vars.get("totalSimpleProductsAdded"));
                    simpleProductsAdded = simpleProductsAdded + numberOfSimpleProducts;
                    vars.put("totalSimpleProductsAdded", String.valueOf(simpleProductsAdded));

                    productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
                    productsAdded = productsAdded + numberOfSimpleProducts;
                    vars.put("totalProductsAdded", String.valueOf(productsAdded));
                </stringProp>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/large_number_of_products_in_the_card/related_products_add_to_cart_preprocessor.jmx</stringProp></JSR223PreProcessor>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Additional Configurable Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
configurableProductsAdded = Integer.parseInt(vars.get("totalConfigurableProductsAdded"));

product = props.get("configurable_products_list").get(configurableProductsAdded);

vars.put("product_number", configurableProductsAdded.toString());
vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));

configurableProductsAdded = configurableProductsAdded + 1;
vars.put("totalConfigurableProductsAdded", String.valueOf(configurableProductsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup_large_number_of_products.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Details by name" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetailByName($product_sku: String, $onServer: Boolean!) {\n    products(filter: { sku: { eq: $product_sku } }, sort: {name: ASC}) {\n        items {\n            id\n            sku\n            name\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        #fashion_color\n                        #fashion_size\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"product_sku":"${product_sku}","onServer":false},"operationName":"productDetailByName"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_configurable_product_details_by_name.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract Configurable Product option" enabled="true">
      <stringProp name="VAR">product_option</stringProp>
      <stringProp name="JSONPATH">$.data.products.items[0].variants[0].product.sku</stringProp>
      <stringProp name="DEFAULT"/>
      <stringProp name="VARIABLE"/>
      <stringProp name="SUBJECT">BODY</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/extract_configurable_product_option.jmx</stringProp></com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart - Total: ${totalProductsAdded}" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"query":"mutation { addProductsToCart( cartId: \"${quote_id}\" cartItems: [ { quantity: 1 parent_sku: \"${product_sku}\" sku: \"${product_option}\" } ] ) { cart { items { id product { name sku } quantity } } } }","variables":null,"operationName":null}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/large_number_of_products_in_the_card/add_configurable_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2032239040">addProductsToCart</stringProp>
            <stringProp name="-1221840880">"sku":"${product_option}"</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Billing And Shipping Address On Cart" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"query":"mutation{ setBillingAddressOnCart(input: { cart_id: \"${quote_id}\" billing_address: { address: { city: \"Los Angeles\" country_code: \"US\" firstname: \"Async\" lastname: \"Test\" region_id: 12 postcode: \"90004\" street: [ \"123 Homey Lane\" ] telephone: \"6666666666\" } use_for_shipping: true } }){ cart{ id billing_address{ firstname lastname telephone country{ code } region { label region_id } city postcode street } shipping_addresses{ firstname lastname telephone country{ code } region { label region_id } city postcode street } } } }","variables":null,"operationName":null}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/large_number_of_products_in_the_card/set_billing_and_shipping_address_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1150683822">"firstname":"Async","lastname":"Test","telephone":"6666666666"</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Payment Method On Cart" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"query":"mutation{ setPaymentMethodOnCart(input: { cart_id: \"${quote_id}\" payment_method: { code: \"checkmo\" } }){ cart{ id selected_payment_method{ code title } } } }","variables":null,"operationName":null}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/large_number_of_products_in_the_card/set_payment_method_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1549872178">Money order</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Guest Email On Cart" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"query":"mutation { setGuestEmailOnCart( input: { cart_id: \"${quote_id}\" email: \"customer@example.com\" } ) { cart { email } } }","variables":null,"operationName":null}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/large_number_of_products_in_the_card/set_guest_email_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="634186982">{"data":{"setGuestEmailOnCart":{"cart":{"email":"customer@example.com"}}}}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">8</intProp>
        </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Shipping Method On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setShippingMethodsOnCart(input: \n    {\n      cart_id: \"${quote_id}\", \n      shipping_methods: [{\n        carrier_code: \"flatrate\"\n        method_code: \"flatrate\"\n      }]\n    }) {\n    cart {\n      shipping_addresses {\n        selected_shipping_method {\n          carrier_code\n          method_code\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/large_number_of_products_in_the_card/set_shipping_method_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="644143859">{"data":{"setShippingMethodsOnCart":{"cart":{"shipping_addresses":[{"selected_shipping_method":{"carrier_code":"flatrate","method_code":"flatrate"}}]}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{ cart(cart_id: \"${quote_id}\") { total_quantity email billing_address { city country { code label } firstname lastname postcode region { code label } street telephone } shipping_addresses { firstname lastname street city region { code label } country { code label } telephone available_shipping_methods { amount { currency value } available carrier_code carrier_title error_message method_code method_title price_excl_tax { value currency } price_incl_tax { value currency } } selected_shipping_method { amount { value currency } carrier_code carrier_title method_code method_title } } items { id product { name sku } quantity } available_payment_methods { code title } selected_payment_method { code title } applied_coupons { code } prices { grand_total { value currency } } } }","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/large_number_of_products_in_the_card/get_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.cart.total_quantity</stringProp>
        <stringProp name="EXPECTED_VALUE">${totalProductsAdded}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cart 2" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{ cart(cart_id: \"${quote_id}\") { total_quantity email billing_address { city country { code label } firstname lastname postcode region { code label } street telephone } shipping_addresses { firstname lastname street city region { code label } country { code label } telephone available_shipping_methods { amount { currency value } available carrier_code carrier_title error_message method_code method_title price_excl_tax { value currency } price_incl_tax { value currency } } selected_shipping_method { amount { value currency } carrier_code carrier_title method_code method_title } } items { id product { name sku } quantity } available_payment_methods { code title } selected_payment_method { code title } applied_coupons { code } prices { grand_total { value currency } } } }","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/large_number_of_products_in_the_card/get_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.cart.total_quantity</stringProp>
        <stringProp name="EXPECTED_VALUE">${totalProductsAdded}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Place The Order" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"query":"mutation{ placeOrder(input: { cart_id: \"${quote_id}\" }) { order{ order_number } } }","variables":null,"operationName":null}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/large_number_of_products_in_the_card/place_the_order.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="653501529">{"data":{"placeOrder":{"order":{"order_number":"</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  </hashTree>

    
        <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Combined Benchmark Pool" enabled="true">
            <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
            <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
                <boolProp name="LoopController.continue_forever">false</boolProp>
                <stringProp name="LoopController.loops">${loops}</stringProp>
            </elementProp>
            <stringProp name="ThreadGroup.num_threads">${combinedBenchmarkPoolUsers}</stringProp>
            <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
            <longProp name="ThreadGroup.start_time">1505803944000</longProp>
            <longProp name="ThreadGroup.end_time">1505803944000</longProp>
            <boolProp name="ThreadGroup.scheduler">false</boolProp>
            <stringProp name="ThreadGroup.duration"/>
            <stringProp name="ThreadGroup.delay"/>
        <stringProp name="TestPlan.comments">tool/fragments/_system/thread_group.jmx</stringProp></ThreadGroup>
        <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Cache hit miss" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">var cacheHitPercent = vars.get("cache_hits_percentage");

if (
	cacheHitPercent &lt; 100 &amp;&amp;
	sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
	doCache();
}

function doCache(){
	var random = Math.random() * 100;
	if (cacheHitPercent &lt; random) {
		sampler.setPath(sampler.getPath() + "?cacheModifier=" + Math.random().toString(36).substring(2, 13));
	}
}
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/cache_hit_miss.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Catalog Browsing By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cBrowseCatalogByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Catalog Browsing By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Simple Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Configurable Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Site Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cSiteSearchPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Site Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Search Terms" enabled="true">
      <stringProp name="filename">${files_folder}search_terms.csv</stringProp>
      <stringProp name="fileEncoding">UTF-8</stringProp>
      <stringProp name="variableNames"/>
      <stringProp name="delimiter">,</stringProp>
      <boolProp name="quotedData">false</boolProp>
      <boolProp name="recycle">true</boolProp>
      <boolProp name="stopThread">false</boolProp>
      <stringProp name="shareMode">shareMode.thread</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/search_terms.jmx</stringProp></CSVDataSet>
    <hashTree/>
  
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Cache hit miss" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">var cacheHitPercent = vars.get("cache_hits_percentage");

if (
	cacheHitPercent &lt; 100 &amp;&amp;
	sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
	doCache();
}

function doCache(){
	var random = Math.random() * 100;
	if (cacheHitPercent &lt; random) {
		sampler.setPath(sampler.getPath() + "?cacheModifier=" + Math.random().toString(36).substring(2, 13));
	}
}
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/cache_hit_miss.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Quick Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${searchQuickPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Quick Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="q" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">q</stringProp>
            <stringProp name="Argument.value">${searchTerm}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalogsearch/result/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/search_quick.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="56511661">Search results for: </stringProp>
          <stringProp name="1533671447">&lt;span class="toolbar-number"&gt;\d&lt;\/span&gt; Items|Items &lt;span class="toolbar-number"&gt;1</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="(?:http|https)://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
        <stringProp name="RegexExtractor.template">$2$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: isPageCacheable" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">isPageCacheable</stringProp>
        <stringProp name="RegexExtractor.regex">catalogsearch/searchTermsLog/save</stringProp>
        <stringProp name="RegexExtractor.template">$0$</stringProp>
        <stringProp name="RegexExtractor.default">0</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
        <stringProp name="IfController.condition">"${isPageCacheable}" != "0"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      <stringProp name="TestPlan.comments">tool/fragments/ce/search/if_page_cacheable_controller.jmx</stringProp></IfController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Terms Log" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="q" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">q</stringProp>
              <stringProp name="Argument.value">${searchTerm}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}catalogsearch/searchTermsLog/save/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/search/search_terms_log_save.jmx</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-547797305">"success":true</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">
foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr"));

if (foundProducts &gt; 3) {
	foundProducts = 3;
}

vars.put("foundProducts", String.valueOf(foundProducts));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/set_found_items.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Searched Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${foundProducts}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/search/searched_products_setup.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
product = vars.get("product_url_keys_"+number);

vars.put("product_url_key", product);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Quick Search With Filtration" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${searchQuickFilterPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Quick Search With Filtration");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="q" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">q</stringProp>
            <stringProp name="Argument.value">${searchTerm}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol"/>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalogsearch/result/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/search_quick_filter.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="56511661">Search results for: </stringProp>
          <stringProp name="1533671447">Items &lt;span class="toolbar-number"&gt;1</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract number of attribute 1 options" enabled="true">
        <stringProp name="XPathExtractor.default">0</stringProp>
        <stringProp name="XPathExtractor.refname">attribute_1_options_count</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">count((//div[@class="filter-options-content"])[1]//li[@class="item"])</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract number of attribute 2 options" enabled="true">
        <stringProp name="XPathExtractor.default">0</stringProp>
        <stringProp name="XPathExtractor.refname">attribute_2_options_count</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">count((//div[@class="filter-options-content"])[2]//li[@class="item"])</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract filter link from layered navigation" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">attribute_1_filter_url</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">((//div[@class="filter-options-content"])[1]//li[@class="item"]//a)[1]/@href</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract product url keys" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
        <stringProp name="RegexExtractor.template">$2$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: isPageCacheable" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">isPageCacheable</stringProp>
        <stringProp name="RegexExtractor.regex">catalogsearch/searchTermsLog/save</stringProp>
        <stringProp name="RegexExtractor.template">$0$</stringProp>
        <stringProp name="RegexExtractor.default">0</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
        <stringProp name="IfController.condition">"${isPageCacheable}" != "0"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      <stringProp name="TestPlan.comments">tool/fragments/ce/search/if_page_cacheable_controller.jmx</stringProp></IfController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Terms Log" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="q" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">q</stringProp>
              <stringProp name="Argument.value">${searchTerm}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}catalogsearch/searchTermsLog/save/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/search/search_terms_log_save.jmx</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-547797305">"success":true</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Attribute 1 present in layered navigation" enabled="true">
      <stringProp name="IfController.condition">${attribute_1_options_count} &gt; 0</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/search_quick_filter-first-attribute.jmx</stringProp></IfController>
    <hashTree>
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Search Url 2" enabled="true">
        <stringProp name="BeanShellSampler.query">vars.put("search_url", vars.get("attribute_1_filter_url"));</stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
      </BeanShellSampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Filter by Attribute 1" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol"/>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${attribute_1_filter_url}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="56511661">Search results for: </stringProp>
            <stringProp name="1420634794">&lt;span class="toolbar-number"&gt;[1-9]+</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract number of attribute 2 options" enabled="true">
          <stringProp name="XPathExtractor.default">0</stringProp>
          <stringProp name="XPathExtractor.refname">attribute_2_options_count</stringProp>
          <stringProp name="XPathExtractor.xpathQuery">count((//div[@class="filter-options-content"])[2]//li[@class="item"])</stringProp>
          <boolProp name="XPathExtractor.validate">false</boolProp>
          <boolProp name="XPathExtractor.tolerant">true</boolProp>
          <boolProp name="XPathExtractor.namespace">false</boolProp>
        </XPathExtractor>
        <hashTree/>
        <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract filter link from layered navigation" enabled="true">
          <stringProp name="XPathExtractor.default"/>
          <stringProp name="XPathExtractor.refname">attribute_2_filter_url</stringProp>
          <stringProp name="XPathExtractor.xpathQuery">((//div[@class="filter-options-content"])[2]//li[@class="item"]//a)[1]/@href</stringProp>
          <boolProp name="XPathExtractor.validate">false</boolProp>
          <boolProp name="XPathExtractor.tolerant">true</boolProp>
          <boolProp name="XPathExtractor.namespace">false</boolProp>
        </XPathExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract product url keys" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
          <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">-1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Attribute 2 present in layered navigation" enabled="true">
      <stringProp name="IfController.condition">${attribute_2_options_count} &gt; 0</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/search_quick_filter-second-attribute.jmx</stringProp></IfController>
    <hashTree>
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Search Ul 3" enabled="true">
        <stringProp name="BeanShellSampler.query">vars.put("search_url", vars.get("attribute_2_filter_url"));</stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
      </BeanShellSampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Filter by Attribute 2" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol"/>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${attribute_2_filter_url}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="56511661">Search results for: </stringProp>
            <stringProp name="1420634794">&lt;span class="toolbar-number"&gt;[1-9]+</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract product url keys" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
          <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="http://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">-1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">
foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr"));

if (foundProducts &gt; 3) {
	foundProducts = 3;
}

vars.put("foundProducts", String.valueOf(foundProducts));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/set_found_items.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Searched Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${foundProducts}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/search/searched_products_setup.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
product = vars.get("product_url_keys_"+number);

vars.put("product_url_key", product);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Advanced Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${searchAdvancedPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Advanced Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  

    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Advanced Search" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol"/>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalogsearch/advanced/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/open_advanced_search_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="921122077">&lt;title&gt;Advanced Search&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract attribute name" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">attribute_name</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">(//select[@class="multiselect"])[last()]/@name</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract attribute options count" enabled="true">
        <stringProp name="XPathExtractor.default">0</stringProp>
        <stringProp name="XPathExtractor.refname">attribute_options_count</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">count((//select[@class="multiselect"])[last()]/option)</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="Extract attribute value" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">attribute_value</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">((//select[@class="multiselect"])[last()]/option)[1]/@value</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
    </hashTree>


  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="name" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">name</stringProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="sku" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">sku</stringProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="description" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">description</stringProp>
            <stringProp name="Argument.value">${searchTerm}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="short_description" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">short_description</stringProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="price%5Bfrom%5D" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">price%5Bfrom%5D</stringProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <elementProp name="price%5Bto%5D" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.name">price%5Bto%5D</stringProp>
            <stringProp name="Argument.value">${priceTo}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
          </elementProp>
          <!-- Should be fixed in MAGETWO-80420 -->
          <!--<elementProp name="${attribute_name}" elementType="HTTPArgument">-->
            <!--<boolProp name="HTTPArgument.always_encode">true</boolProp>-->
            <!--<stringProp name="Argument.value">${attribute_value}</stringProp>-->
            <!--<stringProp name="Argument.metadata">=</stringProp>-->
            <!--<boolProp name="HTTPArgument.use_equals">true</boolProp>-->
            <!--<stringProp name="Argument.name">${attribute_name}</stringProp>-->
          <!--</elementProp>-->
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalogsearch/advanced/result/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/search_advanced.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert search result" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1851531284">items&lt;/strong&gt; were found using the following search criteria</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;a class="product-item-link"(?s).+?href="(?:http|https)://${host}${base_path}(index.php/)?([^'"]+)${url_suffix}"&gt;(?s).</stringProp>
        <stringProp name="RegexExtractor.template">$2$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">
foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr"));

if (foundProducts &gt; 3) {
	foundProducts = 3;
}

vars.put("foundProducts", String.valueOf(foundProducts));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/set_found_items.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Searched Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${foundProducts}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/search/searched_products_setup.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
product = vars.get("product_url_keys_"+number);

vars.put("product_url_key", product);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Add To Cart By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAddToCartByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Add To Cart By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Simple Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">qty</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Configurable Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="SetUp - Get Configurable Product Options" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_configurable_product_options.jmx</stringProp></LoopController>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">*/*</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
          <stringProp name="VAR">admin_token</stringProp>
          <stringProp name="JSONPATH">$</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="484395188">^.{10,}$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_token</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Authorization</stringProp>
            <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Options" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${product_sku}/options/all</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
          <stringProp name="VAR">attribute_ids</stringProp>
          <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
          <stringProp name="VAR">option_values</stringProp>
          <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">qty</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
                <boolProp name="resetInterpreter">false</boolProp>
                <stringProp name="parameters"/>
                <stringProp name="filename"/>
                <stringProp name="script">
                    try {
                    attribute_ids = vars.get("attribute_ids");
                    option_values = vars.get("option_values");
                    attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
                    option_values = option_values.replace("[","").replace("]","").replace("\"", "");
                    attribute_ids_array = attribute_ids.split(",");
                    option_values_array = option_values.split(",");
                    args = ctx.getCurrentSampler().getArguments();
                    it = args.iterator();
                    while (it.hasNext()) {
                        argument = it.next();
                        if (argument.getStringValue().contains("${")) {
                            args.removeArgument(argument.getName());
                        }
                    }
                    for (int i = 0; i &lt; attribute_ids_array.length; i++) {
                        ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]);
                    }
                    } catch (Exception e) {
                        log.error("eror&#x2026;", e);
                    }
                </stringProp>
              <stringProp name="TestPlan.comments">tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx</stringProp></BeanShellPreProcessor>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Add to Wishlist" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAddToWishlistPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Add to Wishlist");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customerUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Login Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/login/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_login_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="637394530">&lt;title&gt;Customer Login&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="send" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">send</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/loginPost/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1312950388">&lt;title&gt;My Account&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">addressId</stringProp>
        <stringProp name="RegexExtractor.regex">customer/address/edit/id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert addressId extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">addressId</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Customer Private Data" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Produts to Wishlist" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">5</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Wishlist" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="uenc" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${product_uenc}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">uenc</stringProp>
            </elementProp>
            <elementProp name="product" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}wishlist/index/add/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/wishlist/add_to_wishlist.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1907714722">&lt;title&gt;My Wish List&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">wishListItems</stringProp>
          <stringProp name="RegexExtractor.regex">data-post-remove='\{"action":"(.+)\/wishlist\\/index\\/remove\\/","data":\{"item":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">-1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Wishlist Section ${_counter}" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="sections" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">wishlist,messages</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sections</stringProp>
            </elementProp>
            <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
            </elementProp>
            <elementProp name="_" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">_</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/wishlist/load_wishlist_section.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1865430343">{"wishlist":{"counter":"</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
        <ConstantTimer guiclass="ConstantTimerGui" testclass="ConstantTimer" testname="Constant Timer" enabled="true">
          <stringProp name="ConstantTimer.delay">${wishlistDelay}*1000</stringProp>
        </ConstantTimer>
        <hashTree/>
      </hashTree>
  </hashTree>
  
    <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller: Clear Wishlist" enabled="true">
      <stringProp name="ForeachController.inputVal">wishListItems</stringProp>
      <stringProp name="ForeachController.returnVal">wishListItem</stringProp>
      <boolProp name="ForeachController.useSeparator">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/wishlist/clear_wishlist.jmx</stringProp></ForeachController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end">5</stringProp>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Clear Wishlist ${counter}" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="item" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${wishListItem}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">item</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}wishlist/index/remove/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">You are signed out.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Compare Products" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cCompareProductsPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Compare Products");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_compare/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Random Product Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">random_product_compare_id</stringProp>
        <stringProp name="RegexExtractor.regex">catalog\\/product_compare\\/add\\/\",\"data\":\{\"product\":\"([0-9]+)\"</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Random Product Id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">random_product_compare_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Simple Products to Compare" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Comparison Add" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="uenc" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_uenc}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">uenc</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalog/product_compare/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_compare/product_compare_add.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Compare Product Section" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">compare-products,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_compare/customer_section_load_product_compare_add.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"compare-products\":{\"count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Configurable Products to Compare" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Comparison Add" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="uenc" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_uenc}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">uenc</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalog/product_compare/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_compare/product_compare_add.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Compare Product Section" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">compare-products,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_compare/customer_section_load_product_compare_add.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"compare-products\":{\"count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Compare Products" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalog/product_compare/index/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_compare/compare_products.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  
    <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Product Compare - Pause" enabled="true">
      <intProp name="ActionProcessor.action">1</intProp>
      <intProp name="ActionProcessor.target">0</intProp>
      <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${productCompareDelay}*1000))}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_compare/compare_products_pause.jmx</stringProp></TestAction>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Compare Products Clear" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}catalog/product_compare/clear</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_compare/compare_products_clear.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Checkout By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cCheckoutByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Checkout By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Simple Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">qty</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Configurable Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="SetUp - Get Configurable Product Options" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_configurable_product_options.jmx</stringProp></LoopController>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">*/*</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
          <stringProp name="VAR">admin_token</stringProp>
          <stringProp name="JSONPATH">$</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="484395188">^.{10,}$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_token</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Authorization</stringProp>
            <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Options" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${product_sku}/options/all</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
          <stringProp name="VAR">attribute_ids</stringProp>
          <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
          <stringProp name="VAR">option_values</stringProp>
          <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">qty</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
                <boolProp name="resetInterpreter">false</boolProp>
                <stringProp name="parameters"/>
                <stringProp name="filename"/>
                <stringProp name="script">
                    try {
                    attribute_ids = vars.get("attribute_ids");
                    option_values = vars.get("option_values");
                    attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
                    option_values = option_values.replace("[","").replace("]","").replace("\"", "");
                    attribute_ids_array = attribute_ids.split(",");
                    option_values_array = option_values.split(",");
                    args = ctx.getCurrentSampler().getArguments();
                    it = args.iterator();
                    while (it.hasNext()) {
                        argument = it.next();
                        if (argument.getStringValue().contains("${")) {
                            args.removeArgument(argument.getName());
                        }
                    }
                    for (int i = 0; i &lt; attribute_ids_array.length; i++) {
                        ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]);
                    }
                    } catch (Exception e) {
                        log.error("eror&#x2026;", e);
                    }
                </stringProp>
              <stringProp name="TestPlan.comments">tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx</stringProp></BeanShellPreProcessor>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Checkout" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Get region data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">
      vars.put("alabama_region_id", props.get("alabama_region_id"));
      vars.put("california_region_id", props.get("california_region_id"));
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_region_data.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout start" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_start.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1403911775">&lt;title&gt;Checkout&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-179817969">&lt;title&gt;Shopping Cart&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Cart Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">cart_id</stringProp>
        <stringProp name="RegexExtractor.regex">"quoteData":{"entity_id":"([^'"]+)",</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Cart Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">cart_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Email Available" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"customerEmail":"test@example.com"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/customers/isEmailAvailable</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_email_available.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="3569038">true</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Estimate Shipping Methods" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"address":{"country_id":"US","postcode":"95630"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/estimate-shipping-methods</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_estimate_shipping_methods_with_postal_code.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1224567411">"available":true</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Billing/Shipping Information" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"addressInformation":{"shipping_address":{"countryId":"US","regionId":"${california_region_id}","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/shipping-information</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_billing_shipping_information.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1494218646">{"payment_methods":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Payment Info/Place Order" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"cartId":"${cart_id}","email":"test@example.com","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"countryId":"US","regionId":"${california_region_id}","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/payment-information</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_payment_info_place_order.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-297987887">"[0-9]+"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">order_id</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">order_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout success" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/onepage/success/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/guest_checkout/checkout_success.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="494863233">Thank you for your purchase!</stringProp>
          <stringProp name="1635682758">Your order # is</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Checkout By Customer" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cCheckoutByCustomerPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Checkout By Customer");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Total Products In Cart" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_total_products_in_cart_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
vars.put("totalProductsAdded", "0");
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customerUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Login Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/login/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_login_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="637394530">&lt;title&gt;Customer Login&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="send" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">send</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/loginPost/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1312950388">&lt;title&gt;My Account&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">addressId</stringProp>
        <stringProp name="RegexExtractor.regex">customer/address/edit/id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert addressId extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">addressId</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Customer Private Data" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${category_url_key}${url_suffix}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_category.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1210004667">&lt;span class="base" data-ui-id="page-title"&gt;${category_name}&lt;/span&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">category_id</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;li class="item category([^'"]+)"&gt;\s*&lt;strong&gt;${category_name}&lt;/strong&gt;\s*&lt;/li&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="Scope.variable">simple_product_1_url_key</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert category id" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1191417111">^[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">category_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Simple Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">qty</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Configurable Products to Cart" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Update Products Added Counter" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/loops/update_products_added_counter.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
productsAdded = Integer.parseInt(vars.get("totalProductsAdded"));
productsAdded = productsAdded + 1;

vars.put("totalProductsAdded", String.valueOf(productsAdded));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments"/>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${product_url_key}${url_suffix}</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/product_view.jmx</stringProp></HTTPSamplerProxy>
        <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                <collectionProp name="Asserion.test_strings">
                    <stringProp name="-1787050162">&lt;span&gt;In stock&lt;/span&gt;</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
        </hashTree>
    
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="SetUp - Get Configurable Product Options" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_configurable_product_options.jmx</stringProp></LoopController>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">*/*</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
          <stringProp name="VAR">admin_token</stringProp>
          <stringProp name="JSONPATH">$</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="484395188">^.{10,}$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_token</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Authorization</stringProp>
            <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Configurable Product Options" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${product_sku}/options/all</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
          <stringProp name="VAR">attribute_ids</stringProp>
          <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
          <stringProp name="VAR">option_values</stringProp>
          <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
          <stringProp name="DEFAULT">NO_VALUE</stringProp>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">related_product</stringProp>
          </elementProp>
          <elementProp name="qty" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">qty</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/cart/add/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_product_add_to_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
                <boolProp name="resetInterpreter">false</boolProp>
                <stringProp name="parameters"/>
                <stringProp name="filename"/>
                <stringProp name="script">
                    try {
                    attribute_ids = vars.get("attribute_ids");
                    option_values = vars.get("option_values");
                    attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
                    option_values = option_values.replace("[","").replace("]","").replace("\"", "");
                    attribute_ids_array = attribute_ids.split(",");
                    option_values_array = option_values.split(",");
                    args = ctx.getCurrentSampler().getArguments();
                    it = args.iterator();
                    while (it.hasNext()) {
                        argument = it.next();
                        if (argument.getStringValue().contains("${")) {
                            args.removeArgument(argument.getName());
                        }
                    }
                    for (int i = 0; i &lt; attribute_ids_array.length; i++) {
                        ctx.getCurrentSampler().addArgument("super_attribute[" + attribute_ids_array[i] + "]", option_values_array[i]);
                    }
                    } catch (Exception e) {
                        log.error("eror&#x2026;", e);
                    }
                </stringProp>
              <stringProp name="TestPlan.comments">tool/fragments/ce/common/configurable_product_add_to_cart_preprocessor.jmx</stringProp></BeanShellPreProcessor>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Cart Section ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">cart,messages</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/load_cart_section.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${product_name} to your <a href="${base_path}checkout/cart/">shopping cart</a>.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2057973164">This product is out of stock.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-350323027">\"summary_count\":${totalProductsAdded}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">X-Requested-With</stringProp>
          <stringProp name="Header.value">XMLHttpRequest</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/http_header_manager_ajax.jmx</stringProp></HeaderManager>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Checkout" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Get region data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">
      vars.put("alabama_region_id", props.get("alabama_region_id"));
      vars.put("california_region_id", props.get("california_region_id"));
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_region_data.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout start" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/customer_checkout/checkout_start.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1403911775">&lt;title&gt;Checkout&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-179817969">&lt;title&gt;Shopping Cart&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Cart Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">cart_id</stringProp>
        <stringProp name="RegexExtractor.regex">"quoteData":{"entity_id":"([^'"]+)",</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">address_id</stringProp>
        <stringProp name="RegexExtractor.regex">"default_billing":"([^'"]+)",</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Customer Id" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">customer_id</stringProp>
        <stringProp name="RegexExtractor.regex">"customer_id":([^'",]+),</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Cart Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">cart_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Address Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="576002869">[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">address_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Customer Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="576002869">[0-9]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">customer_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Estimate Shipping Methods" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"addressId":"${addressId}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/mine/estimate-shipping-methods-by-address-id</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/customer_checkout/checkout_estimate_shipping_methods.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${base_path}checkout/onepage/</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1224567411">"available":true</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Billing/Shipping Information" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"addressInformation":{"shipping_address":{"customerAddressId":"${address_id}","countryId":"US","regionId":"${alabama_region_id}","regionCode":"AL","region":"Alabama","customerId":"${customer_id}","street":["123 Freedom Blvd. #123"],"telephone":"022-333-4455","postcode":"123123","city":"Fayetteville","firstname":"Anthony","lastname":"Nealy"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/mine/shipping-information</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/customer_checkout/checkout_billing_shipping_information.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${host}${base_path}checkout/onepage</stringProp>
          </elementProp>
          <elementProp name="Content-Type" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8</stringProp>
          </elementProp>
          <elementProp name="X-Requested-With" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
          <elementProp name="Accept" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-740937264">{"payment_methods"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Payment Info/Place Order" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"cartId":"${cart_id}","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"customerAddressId":"${address_id}","countryId":"US","regionId":"${alabama_region_id}","regionCode":"AL","region":"Alabama","customerId":"${customer_id}","street":["123 Freedom Blvd. #123"],"telephone":"022-333-4455","postcode":"123123","city":"Fayetteville","firstname":"Anthony","lastname":"Nealy"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/mine/payment-information</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/customer_checkout/checkout_payment_info_place_order.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
        <collectionProp name="HeaderManager.headers">
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Referer</stringProp>
            <stringProp name="Header.value">${host}${base_path}checkout/onepage</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Content-Type</stringProp>
            <stringProp name="Header.value">application/json; charset=UTF-8 </stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">Accept</stringProp>
            <stringProp name="Header.value">application/json</stringProp>
          </elementProp>
          <elementProp name="" elementType="Header">
            <stringProp name="Header.name">X-Requested-With</stringProp>
            <stringProp name="Header.value">XMLHttpRequest</stringProp>
          </elementProp>
        </collectionProp>
      </HeaderManager>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert order number" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-297987887">"[0-9]+"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout success" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}checkout/onepage/success/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/customer_checkout/checkout_success.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="494863233">Thank you for your purchase!</stringProp>
          <stringProp name="-1590086334">Your order number is</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">You are signed out.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Clear Cookie" enabled="true">
      <boolProp name="resetInterpreter">false</boolProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="script">curSampler = ctx.getCurrentSampler();
if(curSampler.getName().contains("Checkout success")) {
	manager = curSampler.getCookieManager();
	manager.clear();
}
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/customer_checkout/checkout_clear_cookie.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Account management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAccountManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Account management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies">
        <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
          <stringProp name="Cookie.value">30</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">/</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
        <elementProp name="product_list_limit" elementType="Cookie" testname="form_key">
          <stringProp name="Cookie.value">${form_key}</stringProp>
          <stringProp name="Cookie.domain">${host}</stringProp>
          <stringProp name="Cookie.path">${base_path}</stringProp>
          <boolProp name="Cookie.secure">false</boolProp>
          <longProp name="Cookie.expires">0</longProp>
          <boolProp name="Cookie.path_specified">true</boolProp>
          <boolProp name="Cookie.domain_specified">true</boolProp>
        </elementProp>
      </collectionProp>
      <boolProp name="CookieManager.clearEachIteration">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customerUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_home_page.jmx</stringProp></HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="571386695">&lt;title&gt;Home page&lt;/title&gt;</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Login Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/login/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/open_login_page.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="637394530">&lt;title&gt;Customer Login&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="send" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">send</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/loginPost/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1312950388">&lt;title&gt;My Account&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Address" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">addressId</stringProp>
        <stringProp name="RegexExtractor.regex">customer/address/edit/id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert addressId extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">addressId</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load Customer Private Data" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="sections" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sections</stringProp>
          </elementProp>
          <elementProp name="force_new_section_timestamp" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">false</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">force_new_section_timestamp</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/section/load/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="My Orders" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}sales/order/history/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/my_orders.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="220295440">&lt;title&gt;My Orders&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract orderId" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">orderId</stringProp>
        <stringProp name="RegexExtractor.regex">sales/order/view/order_id/(\d+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default">NOT_FOUND</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Orders Controller" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/if_orders.jmx</stringProp>
      <stringProp name="IfController.condition">"${orderId}" != "NOT_FOUND"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    </IfController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View Order" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}sales/order/view/order_id/${orderId}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1956770127">&lt;title&gt;Order #</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract shipment tab" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">shipment_tab</stringProp>
          <stringProp name="RegexExtractor.regex">sales/order/shipment/order_id/(\d+)..Order Shipments</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default">NOT_FOUND</stringProp>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Shipments Controller" enabled="true">
        <stringProp name="TestPlan.comments">May not have shipped</stringProp>
        <stringProp name="IfController.condition">"${shipment_tab}" != "NOT_FOUND"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      </IfController>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View Order Shipments" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments"/>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}sales/order/shipment/order_id/${orderId}</stringProp>
          <stringProp name="HTTPSampler.method">GET</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="120578727">Track this shipment</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">2</intProp>
          </ResponseAssertion>
          <hashTree/>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract popup link" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">popupLink</stringProp>
            <stringProp name="RegexExtractor.regex">popupWindow": {"windowURL":"([^'"]+)",</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
          </RegexExtractor>
          <hashTree/>
        </hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Track Shipment" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments"/>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${popupLink}</stringProp>
          <stringProp name="HTTPSampler.method">GET</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="-760430210">&lt;title&gt;Tracking Information&lt;/title&gt;</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">2</intProp>
          </ResponseAssertion>
          <hashTree/>
        </hashTree>
      </hashTree>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="My Downloadable Products" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}downloadable/customer/products</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/my_downloadable_products.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="358050505">&lt;title&gt;My Downloadable Products&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract orderId" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">orderId</stringProp>
        <stringProp name="RegexExtractor.regex">sales/order/view/order_id/(\d+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default">NOT_FOUND</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract linkId" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">linkId</stringProp>
        <stringProp name="RegexExtractor.regex">downloadable/download/link/id/(\d+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Downloadables Controller" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/if_downloadables.jmx</stringProp>
      <stringProp name="IfController.condition">"${orderId}" != "NOT_FOUND"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    </IfController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View Downloadable Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}sales/order/view/order_id/${orderId}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/view_downloadable_products.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1956770127">&lt;title&gt;Order #</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Download Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}downloadable/download/link/id/${linkId}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/download_product.jmx</stringProp></HTTPSamplerProxy>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="My Wish List" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}wishlist</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1907714722">&lt;title&gt;My Wish List&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract wishlistId" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">wishlistId</stringProp>
        <stringProp name="RegexExtractor.regex">wishlist/index/update/wishlist_id/([^'"]+)/</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/my_wish_list.jmx</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Verify that there are items in the wishlist" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">buttonTitle</stringProp>
        <stringProp name="RegexExtractor.regex">Update Wish List</stringProp>
        <stringProp name="RegexExtractor.template">FOUND</stringProp>
        <stringProp name="RegexExtractor.default">NOT_FOUND</stringProp>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Wish List Controller" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/if_wishlist.jmx</stringProp>
      <stringProp name="IfController.condition">"${buttonTitle}" === "FOUND"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    </IfController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Share Wish List" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}wishlist/index/share/wishlist_id/${wishlistId}/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/share_wish_list.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1257102154">&lt;title&gt;Wish List Sharing&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Send Wish List" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="emails" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">emails</stringProp>
          </elementProp>
          <elementProp name="message" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">[TEST] See my wishlist!!!</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">message</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}wishlist/index/send/wishlist_id/${wishlistId}/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/account_management/send_wish_list.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1907714722">&lt;title&gt;My Wish List&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}customer/account/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">You are signed out.</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin CMS Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminCMSManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin CMS Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin CMS Management" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_cms_management/admin_cms_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/new</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="content" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;CMS Content ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">content</stringProp>
            </elementProp>
            <elementProp name="content_heading" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">content_heading</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
            <elementProp name="identifier" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">identifier</stringProp>
            </elementProp>
            <elementProp name="is_active" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_active</stringProp>
            </elementProp>
            <elementProp name="layout_update_xml" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">layout_update_xml</stringProp>
            </elementProp>
            <elementProp name="meta_description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_description</stringProp>
            </elementProp>
            <elementProp name="meta_keywords" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_keywords</stringProp>
            </elementProp>
            <elementProp name="meta_title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_title</stringProp>
            </elementProp>
            <elementProp name="nodes_data" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">nodes_data</stringProp>
            </elementProp>
            <elementProp name="node_ids" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">node_ids</stringProp>
            </elementProp>
            <elementProp name="page_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">page_id</stringProp>
            </elementProp>
            <elementProp name="page_layout" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1column</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">page_layout</stringProp>
            </elementProp>
            <elementProp name="store_id[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_id[0]</stringProp>
            </elementProp>
            <elementProp name="title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">CMS Title ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">title</stringProp>
            </elementProp>
            <elementProp name="website_root" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">website_root</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-398886250">You saved the page.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCMSManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Browse Product Grid" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminBrowseProductGridPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Browse Product Grid");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="script">
        vars.put("gridEntityType" , "Product");

        pagesCount = parseInt(vars.get("products_page_size")) || 20;
        vars.put("grid_entity_page_size" , pagesCount);
        vars.put("grid_namespace" , "product_listing");
        vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_product_filter_text"));
        vars.put("grid_filter_field", "name");

        // set sort fields and sort directions
        vars.put("grid_sort_field_1", "name");
        vars.put("grid_sort_field_2", "price");
        vars.put("grid_sort_field_3", "attribute_set_id");
        vars.put("grid_sort_order_1", "asc");
        vars.put("grid_sort_order_2", "desc");
      </stringProp>
      <stringProp name="scriptLanguage">javascript</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_browse_products_grid/setup.jmx</stringProp></JSR223PostProcessor>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} pages count" enabled="true">
        <stringProp name="cacheKey"/>
        <stringProp name="filename"/>
        <stringProp name="parameters"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
          var totalsRecord = parseInt(vars.get("entity_total_records"));
          var pageCount = Math.round(totalsRecord/pageSize);

          vars.put("grid_pages_count", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Filtered Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} filtered pages count" enabled="true">
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
var totalsRecord = parseInt(vars.get("entity_total_records"));
var pageCount = Math.round(totalsRecord/pageSize);

vars.put("grid_pages_count_filtered", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${page_number}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select Filtered ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count_filtered}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="View ${gridEntityType} page - Filtering + Sorting" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Field Defined" enabled="true">
        <stringProp name="ForeachController.inputVal">grid_sort_field</stringProp>
        <stringProp name="ForeachController.returnVal">grid_sort_field</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
        <stringProp name="ForeachController.startIndex">0</stringProp>
        <stringProp name="ForeachController.endIndex">3</stringProp>
      </ForeachController>
      <hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Order Defined" enabled="true">
          <stringProp name="ForeachController.inputVal">grid_sort_order</stringProp>
          <stringProp name="ForeachController.returnVal">grid_sort_order</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
          <stringProp name="ForeachController.startIndex">0</stringProp>
          <stringProp name="ForeachController.endIndex">2</stringProp>
        </ForeachController>
        <hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page - Filtering + Sort By ${grid_sort_field} ${grid_sort_order}" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
              <collectionProp name="Arguments.arguments">
                <elementProp name="namespace" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_namespace}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">namespace</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[${grid_filter_field}]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[${grid_filter_field}]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[placeholder]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[placeholder]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[pageSize]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[pageSize]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[current]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${page_number}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[current]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[field]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_field}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[field]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[direction]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_order}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[direction]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="isAjax" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">isAjax</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
          </HTTPSamplerProxy>
          <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
              </collectionProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Browse Order Grid" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminBrowseOrderGridPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Browse Order Grid");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="script">
        vars.put("gridEntityType" , "Order");

        pagesCount = parseInt(vars.get("orders_page_size")) || 20;
        vars.put("grid_entity_page_size" , pagesCount);
        vars.put("grid_namespace" , "sales_order_grid");
        vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_orders_filter_text"));
        vars.put("grid_filter_field", "status");

        // set sort fields and sort directions
        vars.put("grid_sort_field_1", "increment_id");
        vars.put("grid_sort_field_2", "created_at");
        vars.put("grid_sort_field_3", "billing_name");
        vars.put("grid_sort_order_1", "asc");
        vars.put("grid_sort_order_2", "desc");
      </stringProp>
      <stringProp name="scriptLanguage">javascript</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_browse_orders_grid/setup.jmx</stringProp></JSR223PostProcessor>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} pages count" enabled="true">
        <stringProp name="cacheKey"/>
        <stringProp name="filename"/>
        <stringProp name="parameters"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
          var totalsRecord = parseInt(vars.get("entity_total_records"));
          var pageCount = Math.round(totalsRecord/pageSize);

          vars.put("grid_pages_count", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Filtered Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} filtered pages count" enabled="true">
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
var totalsRecord = parseInt(vars.get("entity_total_records"));
var pageCount = Math.round(totalsRecord/pageSize);

vars.put("grid_pages_count_filtered", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${page_number}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select Filtered ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count_filtered}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="View ${gridEntityType} page - Filtering + Sorting" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Field Defined" enabled="true">
        <stringProp name="ForeachController.inputVal">grid_sort_field</stringProp>
        <stringProp name="ForeachController.returnVal">grid_sort_field</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
        <stringProp name="ForeachController.startIndex">0</stringProp>
        <stringProp name="ForeachController.endIndex">3</stringProp>
      </ForeachController>
      <hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Order Defined" enabled="true">
          <stringProp name="ForeachController.inputVal">grid_sort_order</stringProp>
          <stringProp name="ForeachController.returnVal">grid_sort_order</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
          <stringProp name="ForeachController.startIndex">0</stringProp>
          <stringProp name="ForeachController.endIndex">2</stringProp>
        </ForeachController>
        <hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page - Filtering + Sort By ${grid_sort_field} ${grid_sort_order}" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
              <collectionProp name="Arguments.arguments">
                <elementProp name="namespace" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_namespace}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">namespace</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[${grid_filter_field}]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[${grid_filter_field}]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[placeholder]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[placeholder]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[pageSize]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[pageSize]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[current]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${page_number}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[current]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[field]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_field}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[field]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[direction]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_order}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[direction]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="isAjax" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">isAjax</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
          </HTTPSamplerProxy>
          <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
              </collectionProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Create Product" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminProductCreationPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Create Product");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Once Only Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/once_only_controller.jmx</stringProp>
</OnceOnlyController>
    <hashTree>
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Related Product Id" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/get_related_product_id.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom});
}
relatedIndex = random.nextInt(props.get("simple_products_list").size());
vars.put("related_product_id", props.get("simple_products_list").get(relatedIndex).get("id"));</stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="SetUp - Get Product Attributes" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^.{10,}$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - API Get product attributes" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">mycolor</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">attribute_code</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][1][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">mysize</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][1][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">attribute_code</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][field]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attributes</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/get_product_attributes.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product attributes" enabled="true">
        <stringProp name="VAR">product_attributes</stringProp>
        <stringProp name="JSONPATH">$.items</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="SetUp - Prepare product attributes" enabled="true">
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey"/>
        <stringProp name="script">
var attributesData = JSON.parse(vars.get("product_attributes")),
maxOptions = 2;

attributes = [];
for (i in attributesData) {
    if (i &gt;= 2) {
        break;
    }
    var data = attributesData[i],
        attribute = {
            "id": data.attribute_id,
            "code": data.attribute_code,
            "label": data.default_frontend_label,
            "options": []
        };

    var processedOptions = 0;
    for (optionN in data.options) {
        var option = data.options[optionN];
        if (parseInt(option.value) &gt; 0 &amp;&amp; processedOptions &lt; maxOptions) {
            processedOptions++;
            attribute.options.push(option);
        }
    }
    attributes.push(attribute);
}

vars.putObject("product_attributes", attributes);
</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get Attribute Set Id" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product_set/index/filter/${attribute_set_filter}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_setup_attribute_set.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">attribute_set_id</stringProp>
        <stringProp name="RegexExtractor.regex">catalog&amp;#x2F;product_set&amp;#x2F;edit&amp;#x2F;id&amp;#x2F;([\d]+)&amp;#x2F;"[\D\d]*Attribute Set 1</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="SetUp - Set Attribute Set Filter" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">import org.apache.commons.codec.binary.Base64;

byte[] encodedBytes = Base64.encodeBase64("set_name=Attribute Set 1".getBytes());
vars.put("attribute_set_filter", new String(encodedBytes));
</stringProp>
      </BeanShellPreProcessor>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();
int number1;

if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom});
}
number = random.nextInt(props.get("simple_products_list_for_edit").size());

simpleList = props.get("simple_products_list_for_edit").get(number);
vars.put("simple_product_1_id", simpleList.get("id"));
vars.put("simple_product_1_name", simpleList.get("title"));

do {
    number1 = random.nextInt(props.get("simple_products_list_for_edit").size());
} while(number == number1);
simpleList = props.get("simple_products_list_for_edit").get(number1);
vars.put("simple_product_2_id", simpleList.get("id"));
vars.put("simple_product_2_name", simpleList.get("title"));

number2 = random.nextInt(props.get("configurable_products_list").size());
configurableList = props.get("configurable_products_list").get(number2);
vars.put("configurable_product_1_id", configurableList.get("id"));
vars.put("configurable_product_1_url_key", configurableList.get("url_key"));
vars.put("configurable_product_1_name", configurableList.get("title"));

//Additional category to be added
//int categoryId = Integer.parseInt(vars.get("simple_product_category_id"));
//vars.put("category_additional", (categoryId+1).toString());
//New price
vars.put("price_new", "9999");
//New special price
vars.put("special_price_new", "8888");
//New quantity
vars.put("quantity_new", "100600");
vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNum}-${__Random(1,1000000)}");

      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Bundle Product" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/create_bundle_product.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1509986340">records found</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/4/type/bundle/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-144461265">New Product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product  ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">42</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variations]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            </elementProp>
            <elementProp name="product[shipment_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[shipment_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][title]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][required]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][product_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">25</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][product_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10.99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][title]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][required]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">7.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="affect_bundle_product_selections" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_bundle_product_selections</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/4/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1853918323">{"error":false}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">42</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full bundle product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variations]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            </elementProp>
            <elementProp name="product[shipment_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[shipment_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][required]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">25</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10.99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][required]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">7.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="affect_bundle_product_selections" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_bundle_product_selections</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/4/type/bundle/back/edit/active_tab/product-details/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-583471546">You saved the product</stringProp>
            <stringProp name="-1534079309">option title one</stringProp>
            <stringProp name="-1534074215">option title two</stringProp>
            <stringProp name="1304788671">${simple_product_2_name}</stringProp>
            <stringProp name="417284990">${simple_product_1_name}</stringProp>
          </collectionProp>

          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Create Configurable Product" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/open_catalog_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1509986340">records found</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Configurable Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/${attribute_set_id}/type/configurable/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/new_configurable.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-144461265">New Product</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Configurable Product Validate" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="ajax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">ajax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[affect_product_custom_options]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[affect_product_custom_options]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[attribute_set_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[attribute_set_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[category_ids][0]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">4</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[category_ids][0]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Description</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Keyword</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_title]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Title</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_title]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[name]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[name]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[options_container]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">container2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[options_container]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[product_has_weight]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[short_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[short_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[sku]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[sku]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[small_image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[small_image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[special_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${special_price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[special_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[status]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[status]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[thumbnail]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[thumbnail]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[url_key]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[url_key]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[visibility]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">4</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[visibility]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[website_ids][1]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[website_ids][1]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="links[related][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[related][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/${attribute_set_id}/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_validate.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1853918323">{"error":false}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Prepare Configurable Data" enabled="true">
            <stringProp name="scriptLanguage">javascript</stringProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="cacheKey"/>
            <stringProp name="script">
attributes = vars.getObject("product_attributes");

for (i in attributes) {
    var attribute = attributes[i];
    sampler.addArgument("attribute_codes[" + i + "]", attribute.code);
    sampler.addArgument("attributes[" + i + "]", attribute.id);
    sampler.addArgument("product[" + attribute.code + "]", attribute.options[0].value);
    addConfigurableAttributeData(attribute);
}

addConfigurableMatrix(attributes);

function addConfigurableAttributeData(attribute) {
    var attributeId = attribute.id;

    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attribute.code);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attribute.label);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][position]", 0);
    attribute.options.forEach(function (option, index) {
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][include]", index);
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][value_index]", option.value);
    });
}

/**
 * Build 4 simple products for Configurable
 */
function addConfigurableMatrix(attributes) {

    var attribute1 = attributes[0],
        attribute2 = attributes[1],
        productIndex = 1,
        products = [];
    var variationNames = [];
    attribute1.options.forEach(function (option1) {
        attribute2.options.forEach(function (option2) {
            var productAttributes = {},
                namePart = option1.label + "+" + option2.label,
                variationKey = option1.value + "-" + option2.value;
            productAttributes[attribute1.code] = option1.value;
            productAttributes[attribute2.code] = option2.value;

            variationNames.push(namePart + " - " + vars.get("configurable_sku"));
            var product = {
                "id": null,
                "name": namePart + " - " + vars.get("configurable_sku"),
                "sku": namePart + " - " + vars.get("configurable_sku"),
                "status": 1,
                "price": "100",
                "price_currency": "$",
                "price_string": "$100",
                "weight": "6",
                "qty": "50",
                "variationKey": variationKey,
                "configurable_attribute": JSON.stringify(productAttributes),
                "thumbnail_image": "",
                "media_gallery": {"images": {}},
                "image": [],
                "was_changed": true,
                "canEdit": 1,
                "newProduct": 1,
                "record_id": productIndex
            };
            productIndex++;
            products.push(product);
        });
    });

    sampler.addArgument("configurable-matrix-serialized", JSON.stringify(products));
    vars.putObject("configurable_variations_assertion", variationNames);
}
            </stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Configurable Product Save" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="ajax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">ajax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[affect_product_custom_options]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[affect_product_custom_options]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[attribute_set_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[attribute_set_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[category_ids][0]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[category_ids][0]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Description</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Keyword</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_title]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Title</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_title]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[name]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[name]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[options_container]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">container2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[options_container]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[product_has_weight]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[short_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[short_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[sku]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[sku]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[small_image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[small_image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[special_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${special_price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[special_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[status]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[status]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[thumbnail]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[thumbnail]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[url_key]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[url_key]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[visibility]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">4</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[visibility]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[website_ids][1]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[website_ids][1]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="links[related][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[related][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/${attribute_set_id}/type/configurable/back/edit/active_tab/product-details/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_save.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-583471546">You saved the product</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Assert Variation" enabled="true">
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey"/>
        <stringProp name="script">
var configurableVariations = vars.getObject("configurable_variations_assertion"),
response = SampleResult.getResponseDataAsString();

configurableVariations.forEach(function (variation) {
    if (response.indexOf(variation) == -1) {
        AssertionResult.setFailureMessage("Cannot find variation \"" + variation + "\"");
        AssertionResult.setFailure(true);
    }
});
</stringProp>
      </JSR223Assertion>
      <hashTree/>
    
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Prepare Configurable Data" enabled="true">
            <stringProp name="scriptLanguage">javascript</stringProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="cacheKey"/>
            <stringProp name="script">
attributes = vars.getObject("product_attributes");

for (i in attributes) {
    var attribute = attributes[i];
    sampler.addArgument("attribute_codes[" + i + "]", attribute.code);
    sampler.addArgument("attributes[" + i + "]", attribute.id);
    sampler.addArgument("product[" + attribute.code + "]", attribute.options[0].value);
    addConfigurableAttributeData(attribute);
}

addConfigurableMatrix(attributes);

function addConfigurableAttributeData(attribute) {
    var attributeId = attribute.id;

    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attribute.code);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attribute.label);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][position]", 0);
    attribute.options.forEach(function (option, index) {
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][include]", index);
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][value_index]", option.value);
    });
}

/**
 * Build 4 simple products for Configurable
 */
function addConfigurableMatrix(attributes) {

    var attribute1 = attributes[0],
        attribute2 = attributes[1],
        productIndex = 1,
        products = [];
    var variationNames = [];
    attribute1.options.forEach(function (option1) {
        attribute2.options.forEach(function (option2) {
            var productAttributes = {},
                namePart = option1.label + "+" + option2.label,
                variationKey = option1.value + "-" + option2.value;
            productAttributes[attribute1.code] = option1.value;
            productAttributes[attribute2.code] = option2.value;

            variationNames.push(namePart + " - " + vars.get("configurable_sku"));
            var product = {
                "id": null,
                "name": namePart + " - " + vars.get("configurable_sku"),
                "sku": namePart + " - " + vars.get("configurable_sku"),
                "status": 1,
                "price": "100",
                "price_currency": "$",
                "price_string": "$100",
                "weight": "6",
                "qty": "50",
                "variationKey": variationKey,
                "configurable_attribute": JSON.stringify(productAttributes),
                "thumbnail_image": "",
                "media_gallery": {"images": {}},
                "image": [],
                "was_changed": true,
                "canEdit": 1,
                "newProduct": 1,
                "record_id": productIndex
            };
            productIndex++;
            products.push(product);
        });
    });

    sampler.addArgument("configurable-matrix-serialized", JSON.stringify(products));
    vars.putObject("configurable_variations_assertion", variationNames);
}
            </stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Downloadable Product" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/create_downloadable_product.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1509986340">records found</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/4/type/downloadable/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-144461265">New Product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Upload Original File" enabled="true">
        <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
          <collectionProp name="HTTPFileArgs.files">
            <elementProp name="${files_folder}downloadable_original.txt" elementType="HTTPFileArg">
              <stringProp name="File.path">${files_folder}downloadable_original.txt</stringProp>
              <stringProp name="File.paramname">links</stringProp>
              <stringProp name="File.mimetype">text/plain</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/downloadable_file/upload/type/links/?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract original file" enabled="true">
          <stringProp name="VAR">original_file</stringProp>
          <stringProp name="JSONPATH">$.file</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Upload Sample File" enabled="true">
        <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
          <collectionProp name="HTTPFileArgs.files">
            <elementProp name="${files_folder}downloadable_sample.txt" elementType="HTTPFileArg">
              <stringProp name="File.path">${files_folder}downloadable_sample.txt</stringProp>
              <stringProp name="File.paramname">samples</stringProp>
              <stringProp name="File.mimetype">text/plain</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/downloadable_file/upload/type/samples/?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract sample file" enabled="true">
          <stringProp name="VAR">sample_file</stringProp>
          <stringProp name="JSONPATH">$.file</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Product Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="is_downloadable" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">on</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_downloadable</stringProp>
            </elementProp>
            <elementProp name="product[links_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Links</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[links_title]</stringProp>
            </elementProp>
            <elementProp name="product[links_purchased_separately]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[links_purchased_separately]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${original_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_original.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">13</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_shareable]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_shareable]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_unlimited]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_unlimited]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][link_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][link_url]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][number_of_downloads]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][number_of_downloads]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">120</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][price]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][record_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][type]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][url]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sort_order]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Original Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][title]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][type]</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${sample_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_sample.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">14</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][record_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sample_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sample_url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sort_order]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Sample Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][title]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/4/type/downloadable/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1853918323">{"error":false}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Product Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${original_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_original.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">13</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_shareable]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_shareable]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_unlimited]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_unlimited]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][link_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][link_url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][number_of_downloads]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][number_of_downloads]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">120</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][price]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][record_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sort_order]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Original Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][title]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${sample_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_sample.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">14</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][record_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sample_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sample_url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sort_order]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Sample Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][title]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/4/type/downloadable/back/edit/active_tab/product-details/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-583471546">You saved the product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1600986843">violation</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">6</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Simple Product" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/create_simple_product.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1509986340">records found</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Simple Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/4/type/simple/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-144461265">New Product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Simple Product Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_require]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_group]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Product Option Title One</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">200</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Row Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_require]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][max_characters]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">250</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][max_characters]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">text</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_group]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Field Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/4/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1853918323">{"error":false}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Simple Product Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full simple product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_require]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_group]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Product Option Title One</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][title]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][type]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">200</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price_type]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sku]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sort_order]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Row Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][title]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_require]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][max_characters]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">250</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][max_characters]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">text</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_group]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_type]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price_type]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sku]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sort_order]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Field Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][title]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][type]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/4/type/simple/back/edit/active_tab/product-details/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-583471546">You saved the product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1600986843">violation</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">6</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Edit Product" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminProductEditingPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Edit Product");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Edit Product" enabled="true"/>
              <hashTree>
                <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Generate Unique Ids for each Thread" enabled="true">
                  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_product/admin_edit_product_updated.jmx</stringProp>
                  <stringProp name="BeanShellSampler.query">import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Random;

    int relatedIndex;
    try {
    Random random = new Random();
    if (${seedForRandom} &gt; 0) {
      random.setSeed(${seedForRandom} + ${__threadNum});
    }
    simpleCount = props.get("simple_products_list_for_edit").size();
    configCount = props.get("configurable_products_list_for_edit").size();
    productCount = 0;
    if (simpleCount &gt; configCount) {
    	productCount = configCount;
    } else {
    	productCount = simpleCount;
    }
    int threadsNumber = ctx.getThreadGroup().getNumThreads();
    if (threadsNumber == 0) {
    	threadsNumber = 1;
    }
    //Current thread number starts from 0
    currentThreadNum = ctx.getThreadNum();

    String siterator = vars.get("threadIterator_" + currentThreadNum.toString());
    iterator = 0;
    if(siterator == null){
    	vars.put("threadIterator_" + currentThreadNum.toString() , "0");
    } else {
    	iterator = Integer.parseInt(siterator);
    	iterator ++;
    	vars.put("threadIterator_" + currentThreadNum.toString() , iterator.toString());
    }

    //Number of products for one thread
    productClusterLength = productCount / threadsNumber;

    if (iterator &gt;= productClusterLength) {
    	vars.put("threadIterator_" + currentThreadNum.toString(), "0");
    	iterator = 0;
    }

    //Index of the current product from the cluster
    i = productClusterLength * currentThreadNum + iterator;

    //ids of simple and configurable products to edit
    vars.put("simple_product_id", props.get("simple_products_list_for_edit").get(i).get("id"));
    vars.put("configurable_product_id", props.get("configurable_products_list_for_edit").get(i).get("id"));

    //id of related product
    do {
    	relatedIndex = random.nextInt(props.get("simple_products_list_for_edit").size());
    } while(i == relatedIndex);
    vars.put("related_product_id", props.get("simple_products_list_for_edit").get(relatedIndex).get("id"));
    } catch (Exception ex) {
    log.info("Script execution failed", ex);
}</stringProp>
                  <stringProp name="BeanShellSampler.filename"/>
                  <stringProp name="BeanShellSampler.parameters"/>
                  <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
                </BeanShellSampler>
                <hashTree/>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Simple Product" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments"/>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/edit/id/${simple_product_id}/</stringProp>
                  <stringProp name="HTTPSampler.method">GET</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1355179215">Product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">16</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract name" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">simple_product_name</stringProp>
                    <stringProp name="RegexExtractor.regex">,"name":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract sku" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">simple_product_sku</stringProp>
                    <stringProp name="RegexExtractor.regex">,"sku":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">simple_product_category_id</stringProp>
                    <stringProp name="RegexExtractor.regex">,"category_ids":."(\d+)".</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                </hashTree>
                <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set updated values" enabled="true">
                  <stringProp name="TestPlan.comments">Passing arguments between threads</stringProp>
                  <stringProp name="BeanShellSampler.query">//Additional category to be added
                    import java.util.Random;

                        Random randomGenerator = new Random();
                        int newCategoryId;
                        if (${seedForRandom} &gt; 0) {
                          randomGenerator.setSeed(${seedForRandom} + ${__threadNum});
                        }

                        int categoryId = Integer.parseInt(vars.get("simple_product_category_id"));
                        categoryList = props.get("admin_category_ids_list");

                        if (categoryList.size() &gt; 1) {
	                        do {
	                            int index = randomGenerator.nextInt(categoryList.size());
	                            newCategoryId = Integer.parseInt(categoryList.get(index));
	                        } while (categoryId == newCategoryId);

                            vars.put("category_additional", newCategoryId.toString());
                        }

                        //New price
                        vars.put("price_new", "9999");
                        //New special price
                        vars.put("special_price_new", "8888");
                        //New quantity
                        vars.put("quantity_new", "100600");
                  </stringProp>
                  <stringProp name="BeanShellSampler.filename"/>
                  <stringProp name="BeanShellSampler.parameters"/>
                  <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
                </BeanShellSampler>
                <hashTree/>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Simple Product Validate" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="ajax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">ajax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1.0000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Full simple product Description ${simple_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variations]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[small_image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[small_image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[thumbnail]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[thumbnail]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">10000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/id/${simple_product_id}/?isAjax=true</stringProp>
                  <stringProp name="HTTPSampler.method">POST</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1853918323">{"error":false}</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Simple Product Save" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="ajax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">ajax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1.0000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${category_additional}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Full simple product Description ${simple_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variations]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[small_image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[small_image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[thumbnail]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[thumbnail]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">10000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/id/${simple_product_id}/back/edit/active_tab/product-details/</stringProp>
                  <stringProp name="HTTPSampler.method">POST</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="-583471546">You saved the product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Configurable Product" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments"/>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/edit/id/${configurable_product_id}/</stringProp>
                  <stringProp name="HTTPSampler.method">GET</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1355179215">Product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">16</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract name" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_name</stringProp>
                    <stringProp name="RegexExtractor.regex">,"name":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract sku" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_sku</stringProp>
                    <stringProp name="RegexExtractor.regex">,"sku":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_category_id</stringProp>
                    <stringProp name="RegexExtractor.regex">,"category_ids":."(\d+)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract configurable attribute id" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_id</stringProp>
                    <stringProp name="RegexExtractor.regex">,"configurable_variation":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                    <boolProp name="RegexExtractor.default_empty_value">true</boolProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract configurable matrix" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_matrix</stringProp>
                    <stringProp name="RegexExtractor.regex">"configurable-matrix":(\[.*?\])</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                    <boolProp name="RegexExtractor.default_empty_value">true</boolProp>
                  </RegexExtractor>
                  <hashTree/>
                  <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract associated products ids" enabled="true">
                    <stringProp name="VAR">associated_products_ids</stringProp>
                    <stringProp name="JSONPATH">$.[*].id</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE">configurable_matrix</stringProp>
                    <stringProp name="SUBJECT">VAR</stringProp>
                  </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract configurable product json" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_data</stringProp>
                    <stringProp name="RegexExtractor.regex">(\{"product":.*?configurable_attributes_data.*?\})\s*&lt;</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract configurable attributes data" enabled="true">
                    <stringProp name="VAR">configurable_attributes_data</stringProp>
                    <stringProp name="JSONPATH">$.product.configurable_attributes_data</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE">configurable_product_data</stringProp>
                    <stringProp name="SUBJECT">VAR</stringProp>
                  </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute ids" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_ids</stringProp>
                    <stringProp name="RegexExtractor.regex">"attribute_id":"(\d+)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute codes" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_codes</stringProp>
                    <stringProp name="RegexExtractor.regex">"code":"(\w+)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute labels" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_labels</stringProp>
                    <stringProp name="RegexExtractor.regex">"label":"(.*?)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute values" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_values</stringProp>
                    <stringProp name="RegexExtractor.regex">"values":(\{(?:\}|.*?\}\}))</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                </hashTree>
                <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach configurable attribute id" enabled="true">
                  <stringProp name="ForeachController.inputVal">configurable_attribute_ids</stringProp>
                  <stringProp name="ForeachController.returnVal">configurable_attribute_id</stringProp>
                  <boolProp name="ForeachController.useSeparator">true</boolProp>
                </ForeachController>
                <hashTree>
                  <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
                    <stringProp name="CounterConfig.start">1</stringProp>
                    <stringProp name="CounterConfig.end">${configurable_attribute_ids_matchNr}</stringProp>
                    <stringProp name="CounterConfig.incr">1</stringProp>
                    <stringProp name="CounterConfig.name">attribute_counter</stringProp>
                    <stringProp name="CounterConfig.format"/>
                    <boolProp name="CounterConfig.per_user">true</boolProp>
                    <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
                  </CounterConfig>
                  <hashTree/>
                  <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Process configurable attribute values" enabled="true">
                    <stringProp name="BeanShellSampler.query">return vars.get("configurable_attribute_values_" + vars.get("attribute_counter"));</stringProp>
                    <stringProp name="BeanShellSampler.filename"/>
                    <stringProp name="BeanShellSampler.parameters"/>
                    <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
                  </BeanShellSampler>
                  <hashTree>
                    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Exctract attribute values" enabled="true">
                      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                      <stringProp name="RegexExtractor.refname">attribute_${configurable_attribute_id}_values</stringProp>
                      <stringProp name="RegexExtractor.regex">"value_index":"(\d+)"</stringProp>
                      <stringProp name="RegexExtractor.template">$1$</stringProp>
                      <stringProp name="RegexExtractor.default"/>
                      <stringProp name="RegexExtractor.match_number">-1</stringProp>
                      <stringProp name="Scope.variable">configurable_attribute_values_${attribute_counter}</stringProp>
                    </RegexExtractor>
                    <hashTree/>
                  </hashTree>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Configurable Product Validate" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">3</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${category_additional}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Configurable product description ${configurable_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_attribute_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variation]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[visibility]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">4</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[visibility]</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">true</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">50</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][type_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">configurable</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][type_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/id/${configurable_product_id}/</stringProp>
                  <stringProp name="HTTPSampler.method">POST</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Configure product options" enabled="true">
                    <boolProp name="resetInterpreter">false</boolProp>
                    <stringProp name="parameters"/>
                    <stringProp name="filename"/>
                    <stringProp name="script">try {
    	int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr"));
    	for (int i = 1; i &lt;= attributesCount; i++) {
    		attributeId = vars.get("configurable_attribute_ids_" + i.toString());
    		attributeCode = vars.get("configurable_attribute_codes_" + i.toString());
    		attributeLabel = vars.get("configurable_attribute_labels_" + i.toString());
    		ctx.getCurrentSampler().addArgument("attributes[" + (i - 1).toString() + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("attribute_codes[" + (i - 1).toString() + "]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[" + attributeCode + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][position]", (i - 1).toString());
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attributeLabel);

    		int valuesCount = Integer.parseInt(vars.get("attribute_" + attributeId + "_values_matchNr"));
    		for (int j = 1; j &lt;= valuesCount; j++) {
    			attributeValue = vars.get("attribute_" + attributeId + "_values_" + j.toString());
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][include]",
    				"1"
    			);
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][value_index]",
    				attributeValue
    			);
    		}
    	}
    	ctx.getCurrentSampler().addArgument("associated_product_ids_serialized", vars.get("associated_products_ids").toString());
    } catch (Exception e) {
        log.error("error???", e);
    }</stringProp>
                  </BeanShellPreProcessor>
                  <hashTree/>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1853918323">{"error":false}</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Configurable Product Save" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="ajax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">ajax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]admin" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]admin</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">3</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${category_additional}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Configurable product description ${configurable_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_attribute_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variation]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[visibility]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">4</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[visibility]</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">true</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">50</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][type_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">configurable</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][type_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/id/${configurable_product_id}/back/edit/active_tab/product-details/</stringProp>
                  <stringProp name="HTTPSampler.method">POST</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Configure product options" enabled="true">
                    <boolProp name="resetInterpreter">false</boolProp>
                    <stringProp name="parameters"/>
                    <stringProp name="filename"/>
                    <stringProp name="script">try {
    	int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr"));
    	for (int i = 1; i &lt;= attributesCount; i++) {
    		attributeId = vars.get("configurable_attribute_ids_" + i.toString());
    		attributeCode = vars.get("configurable_attribute_codes_" + i.toString());
    		attributeLabel = vars.get("configurable_attribute_labels_" + i.toString());
    		ctx.getCurrentSampler().addArgument("attributes[" + (i - 1).toString() + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("attribute_codes[" + (i - 1).toString() + "]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[" + attributeCode + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][position]", (i - 1).toString());
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attributeLabel);

    		int valuesCount = Integer.parseInt(vars.get("attribute_" + attributeId + "_values_matchNr"));
    		for (int j = 1; j &lt;= valuesCount; j++) {
    			attributeValue = vars.get("attribute_" + attributeId + "_values_" + j.toString());
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][include]",
    				"1"
    			);
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][value_index]",
    				attributeValue
    			);
    		}
    	}
    	ctx.getCurrentSampler().addArgument("associated_product_ids_serialized", vars.get("associated_products_ids").toString());
    } catch (Exception e) {
        log.error("error???", e);
    }</stringProp>
                  </BeanShellPreProcessor>
                  <hashTree/>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="-583471546">You saved the product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                    <stringProp name="TestPlan.comments"> if have trouble see messages-message-error </stringProp>
                  </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Returns Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminReturnsManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Returns Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Orders page" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/orders_page.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1204796042">Create New Order</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">desc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
        </elementProp>
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/open_orders.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1637639774">totalRecords</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Pending Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
        </elementProp>
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">asc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/search_orders.jmx</stringProp></HTTPSamplerProxy>
<hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">totalRecords</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order numbers" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_numbers</stringProp>
        <stringProp name="RegexExtractor.regex">\"increment_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order ids" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_ids</stringProp>
        <stringProp name="RegexExtractor.regex">\"entity_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>

      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Generate Unique Ids for each Thread" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
  import java.util.ArrayList;
  import java.util.HashMap;
  import org.apache.jmeter.protocol.http.util.Base64Encoder;
  import java.util.Random;

  // get count of "order_numbers" variable defined in "Search Pending Orders Limit"
  int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr"));


  int clusterLength;
  int threadsNumber = ctx.getThreadGroup().getNumThreads();
  if (threadsNumber == 0) {
      //Number of orders for one thread
      clusterLength = ordersCount;
  } else {
      clusterLength = Math.round(ordersCount / threadsNumber);
      if (clusterLength == 0) {
          clusterLength = 1;
      }
  }

  //Current thread number starts from 0
  int currentThreadNum = ctx.getThreadNum();

  //Index of the current product from the cluster
  Random random = new Random();
  if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
  }
  int iterator = random.nextInt(clusterLength);
  if (iterator == 0) {
  	iterator = 1;
  }

  int i = clusterLength * currentThreadNum + iterator;

  orderNumber = vars.get("order_numbers_" + i.toString());
  orderId = vars.get("order_ids_" + i.toString());
  vars.put("order_number", orderNumber);
  vars.put("order_id", orderId);

  </stringProp>
    <stringProp name="BeanShellSampler.filename"/>
    <stringProp name="BeanShellSampler.parameters"/>
    <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
  </BeanShellSampler>
  <hashTree/>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Order" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/view/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/open_order.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="2103620713">#${order_number}</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order status" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">order_status</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;span id="order_status"&gt;([^&lt;]+)&lt;/span&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
      <stringProp name="IfController.condition">"${order_status}" == "Pending"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/if_controller.jmx</stringProp></IfController>
    <hashTree>
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Start" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/invoice_start.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="-1233850814">Invoice Totals</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract ordered items ids" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">item_ids</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;div id="order_item_(\d+)_title"\s*class="product-title"&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">-1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Submit" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_1}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_1}]</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_2}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_2}]</stringProp>
        </elementProp>
        <elementProp name="invoice[comment_text]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">Invoiced</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[comment_text]</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">POST</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1740524604">The invoice has been created</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Credit Memo Start" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_creditmemo/start/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/credit_memo_start.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1382627322">New Memo</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Credit Memo Submit - Full Refund" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="creditmemo[items][${item_ids_1}][qty]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[items][${item_ids_1}][qty]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[items][${item_ids_2}][qty]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[items][${item_ids_2}][qty]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[do_offline]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[do_offline]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[comment_text]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">Credit Memo added</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[comment_text]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[shipping_amount]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">10</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[shipping_amount]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[adjustment_positive]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">0</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[adjustment_positive]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[adjustment_negative]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">0</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[adjustment_negative]</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_creditmemo/save/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">POST</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/credit_memo_full_refund.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-515117447">You created the credit memo</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
    <hashTree/>
  </hashTree>

    <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Create/Process Returns - Pause" enabled="true">
      <intProp name="ActionProcessor.action">1</intProp>
      <intProp name="ActionProcessor.target">0</intProp>
      <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCreateProcessReturnsDelay}*1000))}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/pause.jmx</stringProp></TestAction>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Browse Customer Grid" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminBrowseCustomerGridPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Browse Customer Grid");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="script">
        vars.put("gridEntityType" , "Customer");

        pagesCount = parseInt(vars.get("customers_page_size")) || 20;
        vars.put("grid_entity_page_size" , pagesCount);
        vars.put("grid_namespace" , "customer_listing");
        vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_customer_filter_text"));
        vars.put("grid_filter_field", "name");

        // set sort fields and sort directions
        vars.put("grid_sort_field_1", "name");
        vars.put("grid_sort_field_2", "group_id");
        vars.put("grid_sort_field_3", "billing_country_id");
        vars.put("grid_sort_order_1", "asc");
        vars.put("grid_sort_order_2", "desc");
      </stringProp>
      <stringProp name="scriptLanguage">javascript</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_browse_customers_grid/setup.jmx</stringProp></JSR223PostProcessor>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} pages count" enabled="true">
        <stringProp name="cacheKey"/>
        <stringProp name="filename"/>
        <stringProp name="parameters"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
          var totalsRecord = parseInt(vars.get("entity_total_records"));
          var pageCount = Math.round(totalsRecord/pageSize);

          vars.put("grid_pages_count", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Filtered Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} filtered pages count" enabled="true">
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
var totalsRecord = parseInt(vars.get("entity_total_records"));
var pageCount = Math.round(totalsRecord/pageSize);

vars.put("grid_pages_count_filtered", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${page_number}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select Filtered ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count_filtered}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="View ${gridEntityType} page - Filtering + Sorting" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Field Defined" enabled="true">
        <stringProp name="ForeachController.inputVal">grid_sort_field</stringProp>
        <stringProp name="ForeachController.returnVal">grid_sort_field</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
        <stringProp name="ForeachController.startIndex">0</stringProp>
        <stringProp name="ForeachController.endIndex">3</stringProp>
      </ForeachController>
      <hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Order Defined" enabled="true">
          <stringProp name="ForeachController.inputVal">grid_sort_order</stringProp>
          <stringProp name="ForeachController.returnVal">grid_sort_order</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
          <stringProp name="ForeachController.startIndex">0</stringProp>
          <stringProp name="ForeachController.endIndex">2</stringProp>
        </ForeachController>
        <hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page - Filtering + Sort By ${grid_sort_field} ${grid_sort_order}" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
              <collectionProp name="Arguments.arguments">
                <elementProp name="namespace" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_namespace}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">namespace</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[${grid_filter_field}]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[${grid_filter_field}]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[placeholder]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[placeholder]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[pageSize]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[pageSize]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[current]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${page_number}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[current]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[field]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_field}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[field]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[direction]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_order}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[direction]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="isAjax" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">isAjax</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
          </HTTPSamplerProxy>
          <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
              </collectionProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Create Order" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminCreateOrderPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Create Order");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Get region data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">
      vars.put("alabama_region_id", props.get("alabama_region_id"));
      vars.put("california_region_id", props.get("california_region_id"));
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_region_data.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Order" enabled="true"/>
    <hashTree>
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_order/admin_create_order.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();

if (${seedForRandom} &gt; 0) {
  random.setSeed(${seedForRandom});
}

number = random.nextInt(props.get("configurable_products_list").size());
configurableList = props.get("configurable_products_list").get(number);
vars.put("configurable_product_1_url_key", configurableList.get("url_key"));
vars.put("configurable_product_1_name", configurableList.get("title"));
vars.put("configurable_product_1_id", configurableList.get("id"));
vars.put("configurable_product_1_sku", configurableList.get("sku"));
vars.put("configurable_attribute_id", configurableList.get("attribute_id"));
vars.put("configurable_option_id", configurableList.get("attribute_option_id"));

number = random.nextInt(props.get("simple_products_list").size());
simpleList = props.get("simple_products_list").get(number);
vars.put("simple_product_1_url_key", simpleList.get("url_key"));
vars.put("simple_product_1_name", simpleList.get("title"));
vars.put("simple_product_1_id", simpleList.get("id"));

number1 = random.nextInt(props.get("configurable_products_list").size());
do {
    number1 = random.nextInt(props.get("simple_products_list").size());
} while(number == number1);
simpleList = props.get("simple_products_list").get(number1);
vars.put("simple_product_2_url_key", simpleList.get("url_key"));
vars.put("simple_product_2_name", simpleList.get("title"));
vars.put("simple_product_2_id", simpleList.get("id"));


customers_index = 0;
if (!props.containsKey("customer_ids_index")) {
	props.put("customer_ids_index", customers_index);
}

try {
	customers_index = props.get("customer_ids_index");
	customers_list = props.get("customer_ids_list");

	if (customers_index == customers_list.size()) {
		customers_index=0;
	}
	vars.put("customer_id", customers_list.get(customers_index));
	props.put("customer_ids_index", ++customers_index);
}
catch (java.lang.Exception e) {
	   log.error("Caught Exception in 'Admin Create Order' thread.");
	   SampleResult.setStopThread(true);
}</stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Start Order" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/start/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree/>
      <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="SetUp - Get Configurable Product Options" enabled="true"/>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">Content-Type</stringProp>
              <stringProp name="Header.value">application/json</stringProp>
            </elementProp>
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">*/*</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
            <collectionProp name="Arguments.arguments">
              <elementProp name="" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
          <stringProp name="HTTPSampler.method">POST</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
            <stringProp name="VAR">admin_token</stringProp>
            <stringProp name="JSONPATH">$</stringProp>
            <stringProp name="DEFAULT"/>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="484395188">^.{10,}$</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">1</intProp>
            <stringProp name="Assertion.scope">variable</stringProp>
            <stringProp name="Scope.variable">admin_token</stringProp>
          </ResponseAssertion>
          <hashTree/>
        </hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">Authorization</stringProp>
              <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get Configurable Product Options" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments"/>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${configurable_product_1_sku}/options/all</stringProp>
          <stringProp name="HTTPSampler.method">GET</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
            <stringProp name="VAR">attribute_ids</stringProp>
            <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
            <stringProp name="DEFAULT">NO_VALUE</stringProp>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
            <stringProp name="VAR">option_values</stringProp>
            <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
            <stringProp name="DEFAULT">NO_VALUE</stringProp>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
        </hashTree>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Products" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="item[${simple_product_1_id}][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">item[${simple_product_1_id}][qty]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="item[${simple_product_2_id}][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">item[${simple_product_2_id}][qty]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="item[${configurable_product_1_id}][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">item[${configurable_product_1_id}][qty]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="customer_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">customer_id</stringProp>
              <stringProp name="Argument.value">${customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="store_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">store_id</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="currency_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">currency_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="payment[method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">payment[method]</stringProp>
              <stringProp name="Argument.value">checkmo</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="reset_shipping" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">reset_shipping</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="json" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">json</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="as_js_varname" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">as_js_varname</stringProp>
              <stringProp name="Argument.value">iFrameResponse</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/loadBlock/block/search,items,shipping_method,totals,giftmessage,billing_method?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Configure product options" enabled="true">
          <boolProp name="resetInterpreter">false</boolProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="script">try {
	attribute_ids = vars.get("attribute_ids");
	option_values = vars.get("option_values");
	attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
	option_values = option_values.replace("[","").replace("]","").replace("\"", "");
	attribute_ids_array = attribute_ids.split(",");
	option_values_array = option_values.split(",");
	args = ctx.getCurrentSampler().getArguments();
	it = args.iterator();
	while (it.hasNext()) {
	    argument = it.next();
	    if (argument.getStringValue().contains("${")) {
	        args.removeArgument(argument.getName());
	    }
	}
	for (int i = 0; i &lt; attribute_ids_array.length; i++) {

    ctx.getCurrentSampler().addArgument("item[" + vars.get("configurable_product_1_id") + "][super_attribute][" + attribute_ids_array[i] + "]", option_values_array[i]);
	}
} catch (Exception e) {
    log.error("error???", e);
}</stringProp>
        </BeanShellPreProcessor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Collect Shipping Rates" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="collect_shipping_rates" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">collect_shipping_rates</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="customer_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">customer_id</stringProp>
              <stringProp name="Argument.value">${customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="store_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">store_id</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="currency_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">currency_id</stringProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="payment[method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">payment[method]</stringProp>
              <stringProp name="Argument.value">checkmo</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="json" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">json</stringProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/loadBlock/block/shipping_method,totals?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Shipping Method" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1987784558">shipping_method</stringProp>
            <stringProp name="818779431">Flat Rate</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Filled Order Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/index/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Filled Order Page" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-37823069">Select from existing customer addresses</stringProp>
            <stringProp name="-13185722">Submit Order</stringProp>
            <stringProp name="-209419315">Items Ordered</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save Order" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="limit" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">limit</stringProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="entity_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">entity_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="email" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">email</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="Telephone" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">Telephone</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="billing_postcode" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">billing_postcode</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="billing_country_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">billing_country_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="billing_regione" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">billing_regione</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="store_name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">store_name</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="page" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">page</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[currency]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[currency]</stringProp>
              <stringProp name="Argument.value">USD</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="sku" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">sku</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="qty" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">qty</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="limit" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">limit</stringProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="entity_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">entity_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="sku" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">sku</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="price[from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">price[from]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="price[to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">price[to]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="in_products" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">in_products</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="page" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">page</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="coupon_code" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">coupon_code</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[account][group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[account][group_id]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[account][email]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[account][email]</stringProp>
              <stringProp name="Argument.value">user_${customer_id}@example.com</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][customer_address_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][customer_address_id]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][prefix]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][firstname]</stringProp>
              <stringProp name="Argument.value">Anthony</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][middlename]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][lastname]</stringProp>
              <stringProp name="Argument.value">Nealy</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][suffix]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][company]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][street][0]</stringProp>
              <stringProp name="Argument.value">123 Freedom Blvd. #123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][street][1]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][city]</stringProp>
              <stringProp name="Argument.value">Fayetteville</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][country_id]</stringProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][region]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][region_id]</stringProp>
              <stringProp name="Argument.value">${alabama_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][postcode]</stringProp>
              <stringProp name="Argument.value">123123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][telephone]</stringProp>
              <stringProp name="Argument.value">022-333-4455</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][fax]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][fax]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][vat_id]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipping_same_as_billing" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipping_same_as_billing</stringProp>
              <stringProp name="Argument.value">on</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="payment[method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">payment[method]</stringProp>
              <stringProp name="Argument.value">checkmo</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[shipping_method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[shipping_method]</stringProp>
              <stringProp name="Argument.value">flatrate_flatrate</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[comment][customer_note]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[comment][customer_note]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[comment][customer_note_notify]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[comment][customer_note_notify]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[send_confirmation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[send_confirmation]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_id</stringProp>
          <stringProp name="RegexExtractor.regex">${host}${base_path}${admin_path}/sales/order/index/order_id/(\d+)/</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Item 1" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_item_1</stringProp>
          <stringProp name="RegexExtractor.regex">order_item_(\d+)_title</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Item 2" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_item_2</stringProp>
          <stringProp name="RegexExtractor.regex">order_item_(\d+)_title</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">2</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Item 3" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_item_3</stringProp>
          <stringProp name="RegexExtractor.regex">order_item_(\d+)_title</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">3</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Item 1" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_item_1</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Item 2" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_item_2</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Item 3" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_item_3</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Created" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="563107624">You created the order.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save Invoice" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[items][${order_item_1}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[items][${order_item_1}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[items][${order_item_2}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[items][${order_item_2}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[items][${order_item_3}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[items][${order_item_3}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[comment_text]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[comment_text]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Invoice Created" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1878312078">The invoice has been created.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save Shipment" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[items][${order_item_1}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[items][${order_item_1}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[items][${order_item_2}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[items][${order_item_2}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[items][${order_item_3}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[items][${order_item_3}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[comment_text]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[comment_text]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Shipment Created" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-348539683">The shipment has been created.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Category Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminCategoryManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Category Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Category Management" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_category_management/admin_category_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
         <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = new java.util.Random();
if (${seedForRandom} &gt; 0) {
random.setSeed(${seedForRandom} + ${__threadNum});
}

/**
 * Get unique ids for fix concurrent category saving
 */
function getNextProductNumber(i) {
    number = productsVariationsSize * ${__threadNum} - i;
    if (number &gt;= productsSize) {
        log.info("${testLabel}: capacity of product list is not enough for support all ${adminPoolUsers} threads");
        return random.nextInt(productsSize);
    }
    return productsVariationsSize * ${__threadNum} - i;
}

var productsVariationsSize = 5,
    productsSize = props.get("simple_products_list_for_edit").size();


for (i = 1; i&lt;= productsVariationsSize; i++) {
    var productVariablePrefix = "simple_product_" + i + "_";
    number = getNextProductNumber(i);
    simpleList = props.get("simple_products_list_for_edit").get(number);

    vars.put(productVariablePrefix + "url_key", simpleList.get("url_key"));
    vars.put(productVariablePrefix + "id", simpleList.get("id"));
    vars.put(productVariablePrefix + "name", simpleList.get("title"));
}

categoryIndex = random.nextInt(props.get("admin_category_ids_list").size());
vars.put("parent_category_id", props.get("admin_category_ids_list").get(categoryIndex));
do {
categoryIndexNew = random.nextInt(props.get("admin_category_ids_list").size());
} while(categoryIndex == categoryIndexNew);
vars.put("new_parent_category_id", props.get("admin_category_ids_list").get(categoryIndexNew));</stringProp>
    </JSR223Sampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
          <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Select parent category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/edit/id/${parent_category_id}/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open new category page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/add/store/0/parent/${parent_category_id}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1903925024">&lt;title&gt;New Category</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">id</stringProp>
            </elementProp>
            <elementProp name="parent" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${parent_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">parent</stringProp>
            </elementProp>
            <elementProp name="path" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">path</stringProp>
            </elementProp>
            <elementProp name="store_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_id</stringProp>
            </elementProp>
            <elementProp name="is_active" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_active</stringProp>
            </elementProp>
            <elementProp name="include_in_menu" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">include_in_menu</stringProp>
            </elementProp>
            <elementProp name="is_anchor" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_anchor</stringProp>
            </elementProp>
            <elementProp name="use_config[available_sort_by]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_config[available_sort_by]</stringProp>
            </elementProp>
            <elementProp name="use_config[default_sort_by]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_config[default_sort_by]</stringProp>
            </elementProp>
            <elementProp name="use_config[filter_price_range]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_config[filter_price_range]</stringProp>
            </elementProp>
            <elementProp name="use_default[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_default[url_key]</stringProp>
            </elementProp>
            <elementProp name="url_key_create_redirect" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">url_key_create_redirect</stringProp>
            </elementProp>
            <elementProp name="custom_use_parent_settings" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">custom_use_parent_settings</stringProp>
            </elementProp>
            <elementProp name="custom_apply_to_products" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">custom_apply_to_products</stringProp>
            </elementProp>
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Admin Category Management ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
            </elementProp>
            <elementProp name="url_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">admin-category-management-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">url_key</stringProp>
            </elementProp>
            <elementProp name="meta_title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_title</stringProp>
            </elementProp>
            <elementProp name="description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">description</stringProp>
            </elementProp>
            <elementProp name="display_mode" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">PRODUCTS</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">display_mode</stringProp>
            </elementProp>
            <elementProp name="default_sort_by" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">position</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">default_sort_by</stringProp>
            </elementProp>
            <elementProp name="meta_keywords" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_keywords</stringProp>
            </elementProp>
            <elementProp name="meta_description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_description</stringProp>
            </elementProp>
            <elementProp name="custom_layout_update" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">custom_layout_update</stringProp>
            </elementProp>
            <elementProp name="category_products" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"${simple_product_1_id}":"","${simple_product_2_id}":"","${simple_product_3_id}":"","${simple_product_4_id}":"","${simple_product_5_id}":""}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">category_products</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">URL</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_id</stringProp>
          <stringProp name="RegexExtractor.regex">/catalog/category/edit/id/(\d+)/</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Select created category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/edit/id/${admin_category_id}/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category row id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_entity_id</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category attribute set id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_attribute_set_id</stringProp>
          <stringProp name="RegexExtractor.regex">"attribute_set_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category parent Id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_parent_id</stringProp>
          <stringProp name="RegexExtractor.regex">"parent_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category created at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_created_at</stringProp>
          <stringProp name="RegexExtractor.regex">"created_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category updated at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_updated_at</stringProp>
          <stringProp name="RegexExtractor.regex">"updated_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category path" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_path</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":(.+)"path":"([^\"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category level" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_level</stringProp>
          <stringProp name="RegexExtractor.regex">"level":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category name" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_name</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":(.+)"name":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category url key" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_url_key</stringProp>
          <stringProp name="RegexExtractor.regex">"url_key":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category url path" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_url_path</stringProp>
          <stringProp name="RegexExtractor.regex">"url_path":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category row id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_entity_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category attribute set id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_attribute_set_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category parent id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_parent_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category created at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_created_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category updated at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_updated_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category path" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="59022110">^[\d\\\/]+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_path</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category level" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_level</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category name" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_name</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category url key" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_url_key</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category url path" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_url_path</stringProp>
        </ResponseAssertion>
        <hashTree/>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert products added" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="417284990">${simple_product_1_name}</stringProp>
              <stringProp name="1304788671">${simple_product_2_name}</stringProp>
              <stringProp name="-2102674944">${simple_product_3_name}</stringProp>
              <stringProp name="-1215171263">${simple_product_4_name}</stringProp>
              <stringProp name="-327667582">${simple_product_5_name}</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">2</intProp>
          </ResponseAssertion>
          <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Move category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">id</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
            <elementProp name="point" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">append</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">point</stringProp>
            </elementProp>
            <elementProp name="pid" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${new_parent_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">pid</stringProp>
            </elementProp>
            <elementProp name="paid" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${parent_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paid</stringProp>
            </elementProp>
            <elementProp name="aid" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">aid</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/move/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Delete category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/delete/id/${admin_category_id}/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category deleted" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1277069529">You deleted the category.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCategoryManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Promotion Rules" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminPromotionRulesPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Promotion Rules");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Promotions Management" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_promotions_management/admin_promotions_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/new</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New Conditional" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1--1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">id</stringProp>
            </elementProp>
            <elementProp name="type" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Address|base_subtotal</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">type</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/newConditionHtml/form/sales_rule_formrule_conditions_fieldset_/form_namespace/sales_rule_form</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Rule Name ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
            </elementProp>
            <elementProp name="is_active" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_active</stringProp>
            </elementProp>
            <elementProp name="use_auto_generation" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_auto_generation</stringProp>
            </elementProp>
            <elementProp name="is_rss" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_rss</stringProp>
            </elementProp>
            <elementProp name="apply_to_shipping" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">apply_to_shipping</stringProp>
            </elementProp>
            <elementProp name="stop_rules_processing" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">stop_rules_processing</stringProp>
            </elementProp>
            <elementProp name="coupon_code" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">coupon_code</stringProp>
            </elementProp>
            <elementProp name="uses_per_coupon" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">uses_per_coupon</stringProp>
            </elementProp>
            <elementProp name="uses_per_customer" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">uses_per_customer</stringProp>
            </elementProp>
            <elementProp name="sort_order" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sort_order</stringProp>
            </elementProp>
            <elementProp name="discount_amount" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">discount_amount</stringProp>
            </elementProp>
            <elementProp name="discount_qty" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">discount_qty</stringProp>
            </elementProp>
            <elementProp name="discount_step" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">discount_step</stringProp>
            </elementProp>
            <elementProp name="reward_points_delta" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">reward_points_delta</stringProp>
            </elementProp>
            <elementProp name="store_labels[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_labels[0]</stringProp>
            </elementProp>
            <elementProp name="description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Rule Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">description</stringProp>
            </elementProp>
            <elementProp name="coupon_type" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">coupon_type</stringProp>
            </elementProp>
            <elementProp name="simple_action" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">cart_fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">simple_action</stringProp>
            </elementProp>
            <elementProp name="website_ids[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">website_ids[0]</stringProp>
            </elementProp>
            <elementProp name="customer_group_ids[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer_group_ids[0]</stringProp>
            </elementProp>
            <elementProp name="from_date" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">from_date</stringProp>
            </elementProp>
            <elementProp name="to_date" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">to_date</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Combine</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][type]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][aggregator]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">all</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][aggregator]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][value]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Address</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][type]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][attribute]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">base_subtotal</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][attribute]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][operator]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&gt;=</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][operator]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][value]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][new_chlid]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][new_chlid]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Product\Combine</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][type]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][aggregator]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">all</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][aggregator]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][value]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][new_child]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][new_child]</stringProp>
            </elementProp>
            <elementProp name="store_labels[1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_labels[1]</stringProp>
            </elementProp>
            <elementProp name="store_labels[2]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_labels[2]</stringProp>
            </elementProp>
            <elementProp name="related_banners" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">related_banners</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-396438583">You saved the rule.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminPromotionsManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Customer Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminCustomerManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Customer Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Customer Management" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_customer_management/admin_customer_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/customer/index</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Render" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="namespace" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">customer_listing</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">namespace</stringProp>
            </elementProp>
            <elementProp name="search" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">search</stringProp>
            </elementProp>
            <elementProp name="filters[placeholder]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">filters[placeholder]</stringProp>
            </elementProp>
            <elementProp name="paging[pageSize]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[pageSize]</stringProp>
            </elementProp>
            <elementProp name="paging[current]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[current]</stringProp>
            </elementProp>
            <elementProp name="sorting[field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">entity_id</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[field]</stringProp>
            </elementProp>
            <elementProp name="sorting[direction]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">asc</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[direction]</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">X-Requested-With</stringProp>
              <stringProp name="Header.value">XMLHttpRequest</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Render" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="namespace" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">customer_listing</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">namespace</stringProp>
            </elementProp>
            <elementProp name="search" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Lastname</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">search</stringProp>
            </elementProp>
            <elementProp name="filters[placeholder]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">filters[placeholder]</stringProp>
            </elementProp>
            <elementProp name="paging[pageSize]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[pageSize]</stringProp>
            </elementProp>
            <elementProp name="paging[current]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[current]</stringProp>
            </elementProp>
            <elementProp name="sorting[field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">entity_id</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[field]</stringProp>
            </elementProp>
            <elementProp name="sorting[direction]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">asc</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[direction]</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">X-Requested-With</stringProp>
              <stringProp name="Header.value">XMLHttpRequest</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer edit url" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">customer_edit_url_path</stringProp>
          <stringProp name="RegexExtractor.regex">actions":\{"edit":\{"href":"(?:http|https):\\/\\/(.*?)\\/customer\\/index\\/edit\\/id\\/(\d+)\\/",</stringProp>
          <stringProp name="RegexExtractor.template">/customer/index/edit/id/$2$/</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer edit url" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">customer_edit_url_path</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Customer" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}${customer_edit_url_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert edit customer page" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1422614550">Customer Information</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer entity_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_entity_id</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract website_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_website_id</stringProp>
          <stringProp name="RegexExtractor.regex">"website_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer firstname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_firstname</stringProp>
          <stringProp name="RegexExtractor.regex">"firstname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer lastname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_lastname</stringProp>
          <stringProp name="RegexExtractor.regex">"lastname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer email" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_email</stringProp>
          <stringProp name="RegexExtractor.regex">"email":"([^\@]+@[^.]+.[^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract group_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_group_id</stringProp>
          <stringProp name="RegexExtractor.regex">"group_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract store_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_store_id</stringProp>
          <stringProp name="RegexExtractor.regex">"store_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extact created_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_created_at</stringProp>
          <stringProp name="RegexExtractor.regex">"created_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract updated_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_updated_at</stringProp>
          <stringProp name="RegexExtractor.regex">"updated_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract is_active" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_is_active</stringProp>
          <stringProp name="RegexExtractor.regex">"is_active":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract disable_auto_group_change" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_disable_auto_group_change</stringProp>
          <stringProp name="RegexExtractor.regex">"disable_auto_group_change":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract created_in" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_created_in</stringProp>
          <stringProp name="RegexExtractor.regex">"created_in":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract dob" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_dob</stringProp>
          <stringProp name="RegexExtractor.regex">"dob":"(\d+)-(\d+)-(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$/$3$/$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract default_billing" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_default_billing</stringProp>
          <stringProp name="RegexExtractor.regex">"default_billing":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract default_shipping" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_default_shipping</stringProp>
          <stringProp name="RegexExtractor.regex">"default_shipping":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract gender" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_gender</stringProp>
          <stringProp name="RegexExtractor.regex">"gender":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract failures_num" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_failures_num</stringProp>
          <stringProp name="RegexExtractor.regex">"failures_num":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_entity_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_entity_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{"entity_id":"(\d+)".+?"parent_id":"${admin_customer_entity_id}"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
       <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_created_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_created_at</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"created_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_updated_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_updated_at</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"updated_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_is_active" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_is_active</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"is_active":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_city" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_city</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"city":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_country_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_country_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"country_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_firstname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_firstname</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"firstname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_lastname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_lastname</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"lastname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_postcode" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_postcode</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"postcode":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_region" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_region</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"region":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_region_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_region_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"region_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address street" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_street</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"street":\["([^"]+)"\]</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_telephone" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_telephone</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"telephone":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_customer_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_customer_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"customer_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer entity_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_entity_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert website_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_website_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer firstname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_firstname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer lastname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_lastname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer email" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_email</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer group_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_group_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer store_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_store_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer created_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_created_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer updated_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_updated_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer is_active" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_is_active</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer disable_auto_group_change" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_disable_auto_group_change</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer created_in" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_created_in</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer dob" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="221072919">^\d+/\d+/\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_dob</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer default_billing" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_default_billing</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer default_shipping" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_default_shipping</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer gender" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_gender</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer failures_num" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_failures_num</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_entity_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_entity_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_created_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_created_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_updated_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_updated_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_is_active" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_is_active</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_city" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_city</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_country_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_country_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_firstname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_firstname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_lastname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_lastname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_postcode" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_postcode</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_region" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_region</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_region_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_region_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_street" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_street</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_telephone" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_telephone</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_customer_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_customer_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Customer Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="isAjax   " elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax   </stringProp>
            </elementProp>
            <elementProp name="customer[entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[entity_id]</stringProp>
            </elementProp>
            <elementProp name="customer[website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_website_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[website_id]</stringProp>
            </elementProp>
            <elementProp name="customer[email]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_email}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[email]</stringProp>
            </elementProp>
            <elementProp name="customer[group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_group_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[group_id]</stringProp>
            </elementProp>
            <elementProp name="customer[store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[store_id]</stringProp>
            </elementProp>
            <elementProp name="customer[created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_at]</stringProp>
            </elementProp>
            <elementProp name="customer[updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[updated_at]</stringProp>
            </elementProp>
            <elementProp name="customer[is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[is_active]</stringProp>
            </elementProp>
            <elementProp name="customer[disable_auto_group_change]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_disable_auto_group_change}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[disable_auto_group_change]</stringProp>
            </elementProp>
            <elementProp name="customer[created_in]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_in}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_in]</stringProp>
            </elementProp>
            <elementProp name="customer[prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[prefix]</stringProp>
            </elementProp>
            <elementProp name="customer[firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_firstname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[firstname]</stringProp>
            </elementProp>
            <elementProp name="customer[middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[middlename]</stringProp>
            </elementProp>
            <elementProp name="customer[lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_lastname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[lastname]</stringProp>
            </elementProp>
            <elementProp name="customer[suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[suffix]</stringProp>
            </elementProp>
            <elementProp name="customer[dob]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_dob}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[dob]</stringProp>
            </elementProp>
            <elementProp name="customer[default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_billing}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_billing]</stringProp>
            </elementProp>
            <elementProp name="customer[default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_shipping}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_shipping]</stringProp>
            </elementProp>
            <elementProp name="customer[taxvat]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[taxvat]</stringProp>
            </elementProp>
            <elementProp name="customer[gender]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_gender}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[gender]</stringProp>
            </elementProp>
            <elementProp name="customer[failures_num]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_failures_num}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[failures_num]</stringProp>
            </elementProp>
            <elementProp name="customer[sendemail_store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[sendemail_store_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][entity_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][created_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][updated_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][is_active]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_city}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][city]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][company]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_country_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_firstname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_lastname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_postcode}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_street}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_telephone}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][customer_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][customer_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">John</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Doe</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Test Company</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][company]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Folsom</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][city]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">95630</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1234567890</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123 Main</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region_id]</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/customer/index/validate/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="49586">200</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Customer Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="isAjax   " elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax   </stringProp>
            </elementProp>
            <elementProp name="customer[entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[entity_id]</stringProp>
            </elementProp>
            <elementProp name="customer[website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_website_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[website_id]</stringProp>
            </elementProp>
            <elementProp name="customer[email]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_email}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[email]</stringProp>
            </elementProp>
            <elementProp name="customer[group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_group_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[group_id]</stringProp>
            </elementProp>
            <elementProp name="customer[store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[store_id]</stringProp>
            </elementProp>
            <elementProp name="customer[created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_at]</stringProp>
            </elementProp>
            <elementProp name="customer[updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[updated_at]</stringProp>
            </elementProp>
            <elementProp name="customer[is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[is_active]</stringProp>
            </elementProp>
            <elementProp name="customer[disable_auto_group_change]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_disable_auto_group_change}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[disable_auto_group_change]</stringProp>
            </elementProp>
            <elementProp name="customer[created_in]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_in}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_in]</stringProp>
            </elementProp>
            <elementProp name="customer[prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[prefix]</stringProp>
            </elementProp>
            <elementProp name="customer[firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_firstname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[firstname]</stringProp>
            </elementProp>
            <elementProp name="customer[middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[middlename]</stringProp>
            </elementProp>
            <elementProp name="customer[lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_lastname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[lastname]</stringProp>
            </elementProp>
            <elementProp name="customer[suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[suffix]</stringProp>
            </elementProp>
            <elementProp name="customer[dob]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_dob}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[dob]</stringProp>
            </elementProp>
            <elementProp name="customer[default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_billing}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_billing]</stringProp>
            </elementProp>
            <elementProp name="customer[default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_shipping}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_shipping]</stringProp>
            </elementProp>
            <elementProp name="customer[taxvat]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[taxvat]</stringProp>
            </elementProp>
            <elementProp name="customer[gender]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_gender}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[gender]</stringProp>
            </elementProp>
            <elementProp name="customer[failures_num]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_failures_num}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[failures_num]</stringProp>
            </elementProp>
            <elementProp name="customer[sendemail_store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[sendemail_store_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][entity_id]</stringProp>
            </elementProp>

            <elementProp name="address[${admin_customer_address_entity_id}][created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][created_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][updated_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][is_active]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_city}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][city]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][company]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_country_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_firstname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_lastname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_postcode}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_street}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_telephone}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][customer_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][customer_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">John</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Doe</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Test Company</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][company]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Folsom</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][city]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">95630</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1234567890</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123 Main</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">12</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region_id]</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/customer/index/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer saved" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="292987815">You saved the customer.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCustomerManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[C] Admin Edit Order" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminEditOrderPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[C] Admin Edit Order");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Orders page" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/orders_page.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1204796042">Create New Order</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">desc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
        </elementProp>
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/open_orders.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1637639774">totalRecords</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Pending Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
        </elementProp>
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">asc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/search_orders.jmx</stringProp></HTTPSamplerProxy>
<hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">totalRecords</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order numbers" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_numbers</stringProp>
        <stringProp name="RegexExtractor.regex">\"increment_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order ids" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_ids</stringProp>
        <stringProp name="RegexExtractor.regex">\"entity_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>

      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Generate Unique Ids for each Thread" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
  import java.util.ArrayList;
  import java.util.HashMap;
  import org.apache.jmeter.protocol.http.util.Base64Encoder;
  import java.util.Random;

  // get count of "order_numbers" variable defined in "Search Pending Orders Limit"
  int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr"));


  int clusterLength;
  int threadsNumber = ctx.getThreadGroup().getNumThreads();
  if (threadsNumber == 0) {
      //Number of orders for one thread
      clusterLength = ordersCount;
  } else {
      clusterLength = Math.round(ordersCount / threadsNumber);
      if (clusterLength == 0) {
          clusterLength = 1;
      }
  }

  //Current thread number starts from 0
  int currentThreadNum = ctx.getThreadNum();

  //Index of the current product from the cluster
  Random random = new Random();
  if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
  }
  int iterator = random.nextInt(clusterLength);
  if (iterator == 0) {
  	iterator = 1;
  }

  int i = clusterLength * currentThreadNum + iterator;

  orderNumber = vars.get("order_numbers_" + i.toString());
  orderId = vars.get("order_ids_" + i.toString());
  vars.put("order_number", orderNumber);
  vars.put("order_id", orderId);

  </stringProp>
    <stringProp name="BeanShellSampler.filename"/>
    <stringProp name="BeanShellSampler.parameters"/>
    <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
  </BeanShellSampler>
  <hashTree/>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Order" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/view/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/open_order.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="2103620713">#${order_number}</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order status" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">order_status</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;span id="order_status"&gt;([^&lt;]+)&lt;/span&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
      <stringProp name="IfController.condition">"${order_status}" == "Pending"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/if_controller.jmx</stringProp></IfController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Comment" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="history[status]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">pending</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">history[status]</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="history[comment]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Some text</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">history[comment]</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/addComment/order_id/${order_id}/?isAjax=true</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/add_comment.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-2089278331">Not Notified</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Start" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/invoice_start.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="-1233850814">Invoice Totals</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract ordered items ids" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">item_ids</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;div id="order_item_(\d+)_title"\s*class="product-title"&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">-1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Submit" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_1}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_1}]</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_2}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_2}]</stringProp>
        </elementProp>
        <elementProp name="invoice[comment_text]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">Invoiced</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[comment_text]</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">POST</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1740524604">The invoice has been created</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Shipment Start" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/order_shipment/start/order_id/${order_id}/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/shipment_start.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="304100442">New Shipment</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Shipment Submit" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="shipment[items][${item_ids_1}]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">shipment[items][${item_ids_1}]</stringProp>
          </elementProp>
          <elementProp name="shipment[items][${item_ids_2}]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">shipment[items][${item_ids_2}]</stringProp>
          </elementProp>
          <elementProp name="shipment[comment_text]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Shipped</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">shipment[comment_text]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/shipment_submit.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-2089453199">The shipment has been created</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  </hashTree>

    
        <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="GraphQL Combined Benchmark Pool" enabled="true">
            <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
            <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
                <boolProp name="LoopController.continue_forever">false</boolProp>
                <stringProp name="LoopController.loops">${loops}</stringProp>
            </elementProp>
            <stringProp name="ThreadGroup.num_threads">${graphQLcombinedBenchmarkPoolUsers}</stringProp>
            <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
            <longProp name="ThreadGroup.start_time">1505803944000</longProp>
            <longProp name="ThreadGroup.end_time">1505803944000</longProp>
            <boolProp name="ThreadGroup.scheduler">false</boolProp>
            <stringProp name="ThreadGroup.duration"/>
            <stringProp name="ThreadGroup.delay"/>
        <stringProp name="TestPlan.comments">tool/fragments/_system/thread_group.jmx</stringProp></ThreadGroup>
        <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Cache hit miss" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">var cacheHitPercent = vars.get("cache_hits_percentage");

if (
	cacheHitPercent &lt; 100 &amp;&amp;
	sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
	doCache();
}

function doCache(){
	var random = Math.random() * 100;
	if (cacheHitPercent &lt; random) {
		sampler.setPath(sampler.getPath() + "?cacheModifier=" + Math.random().toString(36).substring(2, 13));
	}
}
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/cache_hit_miss.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Catalog Browsing By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cBrowseCatalogByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Catalog Browsing By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Home Page" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
            {"query":"query getCmsPage($identifier: String!, $onServer: Boolean!) {\n  cmsPage(identifier: $identifier) {\n    url_key\n    content\n    content_heading\n    title\n    page_layout\n    meta_title @include(if: $onServer)\n    meta_keywords @include(if: $onServer)\n    meta_description @include(if: $onServer)\n  }\n}","variables":{"identifier":"home","onServer":false},"operationName":"getCmsPage"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_home_page.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.cmsPage.url_key</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Category List" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
            {"query" : "{\n categoryList(filters:{}) {\n  id\n  children {\n   id\n   name\n   url_key\n   url_path\n   children_count\n   path\n   image\n   productImagePreview: products(pageSize: 1, sort: {name: ASC}) {\n    items {\n     small_image {\n       label\n       url\n     }\n    }\n   }\n  }\n }\n}"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_list_of_categories.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.categoryList</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get List of Products by category_id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query category($id: Int!, $currentPage: Int, $pageSize: Int) {\n  category(id: $id) {\n    product_count\n    description\n    url_key\n    name\n    id\n    breadcrumbs {\n      category_name\n      category_url_key\n      __typename\n    }\n    products(pageSize: $pageSize, currentPage: $currentPage, sort: {name: ASC}) {\n      total_count\n      items {\n        id\n        name\n        # small_image\n        # short_description\n        url_key\n        special_price\n        special_from_date\n        special_to_date\n        price {\n          regularPrice {\n            amount {\n              value\n              currency\n              __typename\n            }\n            __typename\n          }\n          __typename\n        }\n        __typename\n      }\n      __typename\n    }\n    __typename\n  }\n}\n","variables":{"id":${category_id},"currentPage":1,"pageSize":12},"operationName":"category"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_list_of_products_by_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"name":"${category_name}","id":${category_id},</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Simple Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_simple_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Configurable Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_configurable_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Site Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cSiteSearchPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Site Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Search Terms" enabled="true">
      <stringProp name="filename">${files_folder}search_terms.csv</stringProp>
      <stringProp name="fileEncoding">UTF-8</stringProp>
      <stringProp name="variableNames"/>
      <stringProp name="delimiter">,</stringProp>
      <boolProp name="quotedData">false</boolProp>
      <boolProp name="recycle">true</boolProp>
      <boolProp name="stopThread">false</boolProp>
      <stringProp name="shareMode">shareMode.thread</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/search_terms.jmx</stringProp></CSVDataSet>
    <hashTree/>
  
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Cache hit miss" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">var cacheHitPercent = vars.get("cache_hits_percentage");

if (
	cacheHitPercent &lt; 100 &amp;&amp;
	sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
	doCache();
}

function doCache(){
	var random = Math.random() * 100;
	if (cacheHitPercent &lt; random) {
		sampler.setPath(sampler.getPath() + "?cacheModifier=" + Math.random().toString(36).substring(2, 13));
	}
}
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/cache_hit_miss.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Quick Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${searchQuickPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Quick Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Home Page" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
            {"query":"query getCmsPage($identifier: String!, $onServer: Boolean!) {\n  cmsPage(identifier: $identifier) {\n    url_key\n    content\n    content_heading\n    title\n    page_layout\n    meta_title @include(if: $onServer)\n    meta_keywords @include(if: $onServer)\n    meta_description @include(if: $onServer)\n  }\n}","variables":{"identifier":"home","onServer":false},"operationName":"getCmsPage"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_home_page.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.cmsPage.url_key</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n    products(\n   pageSize:20\n    search: \"${searchTerm}\"\n    sort: {name: ASC}) { \n total_count \n items \n { \n name \n sku \n url_key \n } \n page_info{ \n current_page \n page_size \n total_pages \n } \n filters{ \n name \n request_var \n filter_items_count \n filter_items{ \n label \n items_count \n value_string \n __typename \n } \n } \n aggregations{ \n attribute_code \n count \n label \n options{ \n label \n value \n count \n } \n } \n } \n  }\n","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/search_quick.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_search_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_search_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
        <stringProp name="RegexExtractor.regex">"url_key":"([^'"]+)</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute code 1" enabled="true">
        <stringProp name="VAR">attribute_code_1</stringProp>
        <stringProp name="JSONPATH">$.data.products.filters[1].request_var</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute value 1" enabled="true">
        <stringProp name="VAR">attribute_value_1</stringProp>
        <stringProp name="JSONPATH">$.data.products.filters[1].filter_items[0].value_string</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute code 2" enabled="true">
        <stringProp name="VAR">attribute_code_2</stringProp>
        <stringProp name="JSONPATH">$.data.products.filters[2].request_var</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute value 2" enabled="true">
        <stringProp name="VAR">attribute_value_2</stringProp>
        <stringProp name="JSONPATH">$.data.products.filters[2].filter_items[0].value_string</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">
foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr"));

if (foundProducts &gt; 3) {
	foundProducts = 3;
}

vars.put("foundProducts", String.valueOf(foundProducts));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/set_found_items.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Searched Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${foundProducts}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/search/searched_products_setup.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
product = vars.get("product_url_keys_"+number);

vars.put("product_url_key", product);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Product ${_counter} View" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.productDetail.items[0].sku</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Quick Search With Filtration" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${searchQuickFilterPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Quick Search With Filtration");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Home Page" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
            {"query":"query getCmsPage($identifier: String!, $onServer: Boolean!) {\n  cmsPage(identifier: $identifier) {\n    url_key\n    content\n    content_heading\n    title\n    page_layout\n    meta_title @include(if: $onServer)\n    meta_keywords @include(if: $onServer)\n    meta_description @include(if: $onServer)\n  }\n}","variables":{"identifier":"home","onServer":false},"operationName":"getCmsPage"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_home_page.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.cmsPage.url_key</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n    products(\n   pageSize:20\n    search: \"${searchTerm}\"\n    sort: {name: ASC}) { \n total_count \n items \n { \n name \n sku \n url_key \n } \n page_info{ \n current_page \n page_size \n total_pages \n } \n filters{ \n name \n request_var \n filter_items_count \n filter_items{ \n label \n items_count \n value_string \n __typename \n } \n } \n aggregations{ \n attribute_code \n count \n label \n options{ \n label \n value \n count \n } \n } \n } \n  }\n","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/search_quick.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_search_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_search_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
        <stringProp name="RegexExtractor.regex">"url_key":"([^'"]+)</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute code 1" enabled="true">
        <stringProp name="VAR">attribute_code_1</stringProp>
        <stringProp name="JSONPATH">$.data.products.filters[1].request_var</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute value 1" enabled="true">
        <stringProp name="VAR">attribute_value_1</stringProp>
        <stringProp name="JSONPATH">$.data.products.filters[1].filter_items[0].value_string</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute code 2" enabled="true">
        <stringProp name="VAR">attribute_code_2</stringProp>
        <stringProp name="JSONPATH">$.data.products.filters[2].request_var</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute value 2" enabled="true">
        <stringProp name="VAR">attribute_value_2</stringProp>
        <stringProp name="JSONPATH">$.data.products.filters[2].filter_items[0].value_string</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Filter by Attribute" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Attributes Data" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/searched_attributes_setup.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
attribute_code = vars.get("attribute_code_"+number);

vars.put("attribute_code", attribute_code);

attribute_value = vars.get("attribute_value_"+number);

vars.put("attribute_value", attribute_value);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Filter by Attribute ${_counter}" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n    products(\n   pageSize:20\n    search: \"${searchTerm}\"\n filter:{ \n ${attribute_code}: {in:[\"${attribute_value}\"]} \n } \n   sort: {name: ASC}) { \n total_count \n items \n { \n name \n sku \n url_key \n } \n page_info{ \n current_page \n page_size \n total_pages \n } \n filters{ \n name \n request_var \n filter_items_count \n filter_items{ \n label \n items_count \n value_string \n __typename \n } \n } \n aggregations{ \n attribute_code \n count \n label \n options{ \n label \n value \n count \n } \n } \n } \n  }\n","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/search_quick_filter_attribute.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_search_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_search_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
        <stringProp name="RegexExtractor.regex">"url_key":"([^'"]+)</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">
foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr"));

if (foundProducts &gt; 3) {
	foundProducts = 3;
}

vars.put("foundProducts", String.valueOf(foundProducts));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/set_found_items.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Searched Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${foundProducts}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/search/searched_products_setup.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
product = vars.get("product_url_keys_"+number);

vars.put("product_url_key", product);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Product ${_counter} View" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.productDetail.items[0].sku</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Advanced Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${searchAdvancedPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Advanced Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Home Page" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
            {"query":"query getCmsPage($identifier: String!, $onServer: Boolean!) {\n  cmsPage(identifier: $identifier) {\n    url_key\n    content\n    content_heading\n    title\n    page_layout\n    meta_title @include(if: $onServer)\n    meta_keywords @include(if: $onServer)\n    meta_description @include(if: $onServer)\n  }\n}","variables":{"identifier":"home","onServer":false},"operationName":"getCmsPage"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_home_page.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.cmsPage.url_key</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Advanced" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n    products(\n   pageSize:20\n   filter:{ \n price: {to:\"${priceTo}\"} \n description:{match:\"${searchTerm}\"} \n } \n   sort: {name: ASC}) { \n total_count \n items \n { \n name \n sku \n url_key \n } \n page_info{ \n current_page \n page_size \n total_pages \n } \n filters{ \n name \n request_var \n filter_items_count \n filter_items{ \n label \n items_count \n value_string \n __typename \n } \n } \n aggregations{ \n attribute_code \n count \n label \n options{ \n label \n value \n count \n } \n } \n } \n  }\n","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/search_advanced.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_search_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_search_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product url keys" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">product_url_keys</stringProp>
        <stringProp name="RegexExtractor.regex">"url_key":"([^'"]+)</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">
foundProducts = Integer.parseInt(vars.get("product_url_keys_matchNr"));

if (foundProducts &gt; 3) {
	foundProducts = 3;
}

vars.put("foundProducts", String.valueOf(foundProducts));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/set_found_items.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Searched Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${foundProducts}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/search/searched_products_setup.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
product = vars.get("product_url_keys_"+number);

vars.put("product_url_key", product);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Product ${_counter} View" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.productDetail.items[0].sku</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>

  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Add To Cart By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAddToCartByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Add To Cart By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1901638450">{"data":{"cart":{"items":[]}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Home Page" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
            {"query":"query getCmsPage($identifier: String!, $onServer: Boolean!) {\n  cmsPage(identifier: $identifier) {\n    url_key\n    content\n    content_heading\n    title\n    page_layout\n    meta_title @include(if: $onServer)\n    meta_keywords @include(if: $onServer)\n    meta_description @include(if: $onServer)\n  }\n}","variables":{"identifier":"home","onServer":false},"operationName":"getCmsPage"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_home_page.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.cmsPage.url_key</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Category List" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
            {"query" : "{\n categoryList(filters:{}) {\n  id\n  children {\n   id\n   name\n   url_key\n   url_path\n   children_count\n   path\n   image\n   productImagePreview: products(pageSize: 1, sort: {name: ASC}) {\n    items {\n     small_image {\n       label\n       url\n     }\n    }\n   }\n  }\n }\n}"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_list_of_categories.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.categoryList</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get List of Products by category_id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query category($id: Int!, $currentPage: Int, $pageSize: Int) {\n  category(id: $id) {\n    product_count\n    description\n    url_key\n    name\n    id\n    breadcrumbs {\n      category_name\n      category_url_key\n      __typename\n    }\n    products(pageSize: $pageSize, currentPage: $currentPage, sort: {name: ASC}) {\n      total_count\n      items {\n        id\n        name\n        # small_image\n        # short_description\n        url_key\n        special_price\n        special_from_date\n        special_to_date\n        price {\n          regularPrice {\n            amount {\n              value\n              currency\n              __typename\n            }\n            __typename\n          }\n          __typename\n        }\n        __typename\n      }\n      __typename\n    }\n    __typename\n  }\n}\n","variables":{"id":${category_id},"currentPage":1,"pageSize":12},"operationName":"category"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_list_of_products_by_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"name":"${category_name}","id":${category_id},</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Simple Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_simple_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {  \n  addSimpleProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          data: {\n            quantity: 2\n            sku: \"${product_sku}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        quantity\n        product {\n          sku\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/add_simple_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addSimpleProductsToCart</stringProp>
          <stringProp name="-1173443935">"sku":"${product_sku}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Configurable Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_configurable_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract Configurable Product option" enabled="true">
      <stringProp name="VAR">product_option</stringProp>
      <stringProp name="JSONPATH">$.data.productDetail.items[0].variants[0].product.sku</stringProp>
      <stringProp name="DEFAULT"/>
      <stringProp name="VARIABLE"/>
      <stringProp name="SUBJECT">BODY</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/extract_configurable_product_option_from_product_detail.jmx</stringProp></com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  addConfigurableProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          variant_sku: \"${product_option}\"\n          data: {\n            quantity: 2\n            sku: \"${product_option}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        id\n        quantity\n        product {\n          name\n          sku\n        }\n        ... on ConfigurableCartItem {\n          configurable_options {\n            option_label\n          }\n        }\n    }\n  }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/add_configurable_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addConfigurableProductsToCart</stringProp>
          <stringProp name="675049292">"sku":"${product_option}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Add to Wishlist" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAddToWishlistPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Add to Wishlist");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customerUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  generateCustomerToken(\n email: \"${customer_email}\" \n password: \"${customer_password}\" \n  ) {\n    token \n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/login.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract item id" enabled="true">
        <stringProp name="VAR">customer_token</stringProp>
        <stringProp name="JSONPATH">$.data.generateCustomerToken.token</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.generateCustomerToken.token</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Wishlist" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":" { \n customer {\n  wishlist \n { \n id \n } \n } \n }","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_wishlist.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract wishlist id" enabled="true">
        <stringProp name="VAR">wishlist_id</stringProp>
        <stringProp name="JSONPATH">$.data.customer.wishlist.id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.customer.wishlist.id</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Products to Wishlist" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">5</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_simple_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Wishlist" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query": "mutation{ \n addProductsToWishlist( \n wishlistId: ${wishlist_id} \n wishlistItems:[ \n { \n sku: \"${product_sku}\" \n quantity: 1 \n } \n ]) \n { \n wishlist{ \n id \n items_count \n items{ \n id \n product{name sku} description qty} \n } \n user_errors{code message} \n } \n }","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/add_simple_product_to_wishlist.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract wishlist product id" enabled="true">
        <stringProp name="VAR">wishlist_product_id</stringProp>
        <stringProp name="JSONPATH">$.data.addProductsToWishlist.wishlist.items[0].id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.addProductsToWishlist.wishlist</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Delete Products from Wishlist" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">5</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Delete Product ${_counter} From Wishlist" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query": "mutation { \n removeProductsFromWishlist( \n wishlistId: \"${wishlist_id}\", \n wishlistItemsIds: [\"${wishlist_product_id}\"] \n ) { \n user_errors { \n code \n message \n } \n wishlist { \n id \n sharing_code \n items_count \n items_v2 { \n items {id description quantity product {name sku}} \n } \n } \n } \n }","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/clear_wishlist.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract wishlist product id" enabled="true">
        <stringProp name="VAR">wishlist_product_id</stringProp>
        <stringProp name="JSONPATH">$.data.removeProductsFromWishlist.wishlist.items_v2.items[0].id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.removeProductsFromWishlist.wishlist</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check Wishlist" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":" { \n customer {\n  wishlist \n { \n id \n items_count \n } \n } \n }","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/check_wishlist.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.customer.wishlist.items_count</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  revokeCustomerToken {\n    result \n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/logout.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.revokeCustomerToken.result</stringProp>
        <stringProp name="EXPECTED_VALUE">true</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Compare Products" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cCompareProductsPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Compare Products");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Compare List" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createCompareList \n { \n uid \n } \n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_compare_list.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract compare list id" enabled="true">
        <stringProp name="VAR">compare_list_id</stringProp>
        <stringProp name="JSONPATH">$.data.createCompareList.uid</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.createCompareList.uid</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Category List" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
            {"query" : "{\n categoryList(filters:{}) {\n  id\n  children {\n   id\n   name\n   url_key\n   url_path\n   children_count\n   path\n   image\n   productImagePreview: products(pageSize: 1, sort: {name: ASC}) {\n    items {\n     small_image {\n       label\n       url\n     }\n    }\n   }\n  }\n }\n}"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_list_of_categories.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.categoryList</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get List of Products by category_id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query category($id: Int!, $currentPage: Int, $pageSize: Int) {\n  category(id: $id) {\n    product_count\n    description\n    url_key\n    name\n    id\n    breadcrumbs {\n      category_name\n      category_url_key\n      __typename\n    }\n    products(pageSize: $pageSize, currentPage: $currentPage, sort: {name: ASC}) {\n      total_count\n      items {\n        id\n        name\n        # small_image\n        # short_description\n        url_key\n        special_price\n        special_from_date\n        special_to_date\n        price {\n          regularPrice {\n            amount {\n              value\n              currency\n              __typename\n            }\n            __typename\n          }\n          __typename\n        }\n        __typename\n      }\n      __typename\n    }\n    __typename\n  }\n}\n","variables":{"id":${category_id},"currentPage":1,"pageSize":12},"operationName":"category"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_list_of_products_by_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"name":"${category_name}","id":${category_id},</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Simple Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_simple_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Comparison Add" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation{ \n addProductsToCompareList(input: { uid: \"${compare_list_id}\", products: [${product_id}]}) { \n uid \n item_count \n attributes{code label} \n items { \n product { \n sku \n } \n } \n } \n }","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/product_compare_add.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.addProductsToCompareList.item_count</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Configurable Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_configurable_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Comparison Add" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation{ \n addProductsToCompareList(input: { uid: \"${compare_list_id}\", products: [${product_id}]}) { \n uid \n item_count \n attributes{code label} \n items { \n product { \n sku \n } \n } \n } \n }","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/product_compare_add.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.addProductsToCompareList.item_count</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Compare Products" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query" :"{\n compareList(uid: \"${compare_list_id}\") { \n uid \n items { \n product { \n sku \n } \n } \n } \n}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/compare_products.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.compareList.items</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Compare Products Clear" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  deleteCompareList(uid: \"${compare_list_id}\") \n { \n result \n } \n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/compare_products_clear.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.deleteCompareList.result</stringProp>
        <stringProp name="EXPECTED_VALUE">true</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Checkout By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cCheckoutByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Checkout By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1901638450">{"data":{"cart":{"items":[]}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Home Page" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
            {"query":"query getCmsPage($identifier: String!, $onServer: Boolean!) {\n  cmsPage(identifier: $identifier) {\n    url_key\n    content\n    content_heading\n    title\n    page_layout\n    meta_title @include(if: $onServer)\n    meta_keywords @include(if: $onServer)\n    meta_description @include(if: $onServer)\n  }\n}","variables":{"identifier":"home","onServer":false},"operationName":"getCmsPage"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_home_page.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.cmsPage.url_key</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Category List" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
            {"query" : "{\n categoryList(filters:{}) {\n  id\n  children {\n   id\n   name\n   url_key\n   url_path\n   children_count\n   path\n   image\n   productImagePreview: products(pageSize: 1, sort: {name: ASC}) {\n    items {\n     small_image {\n       label\n       url\n     }\n    }\n   }\n  }\n }\n}"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_list_of_categories.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.categoryList</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get List of Products by category_id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query category($id: Int!, $currentPage: Int, $pageSize: Int) {\n  category(id: $id) {\n    product_count\n    description\n    url_key\n    name\n    id\n    breadcrumbs {\n      category_name\n      category_url_key\n      __typename\n    }\n    products(pageSize: $pageSize, currentPage: $currentPage, sort: {name: ASC}) {\n      total_count\n      items {\n        id\n        name\n        # small_image\n        # short_description\n        url_key\n        special_price\n        special_from_date\n        special_to_date\n        price {\n          regularPrice {\n            amount {\n              value\n              currency\n              __typename\n            }\n            __typename\n          }\n          __typename\n        }\n        __typename\n      }\n      __typename\n    }\n    __typename\n  }\n}\n","variables":{"id":${category_id},"currentPage":1,"pageSize":12},"operationName":"category"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_list_of_products_by_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"name":"${category_name}","id":${category_id},</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Simple Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_simple_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {  \n  addSimpleProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          data: {\n            quantity: 2\n            sku: \"${product_sku}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        quantity\n        product {\n          sku\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/add_simple_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addSimpleProductsToCart</stringProp>
          <stringProp name="-1173443935">"sku":"${product_sku}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Configurable Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_configurable_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract Configurable Product option" enabled="true">
      <stringProp name="VAR">product_option</stringProp>
      <stringProp name="JSONPATH">$.data.productDetail.items[0].variants[0].product.sku</stringProp>
      <stringProp name="DEFAULT"/>
      <stringProp name="VARIABLE"/>
      <stringProp name="SUBJECT">BODY</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/extract_configurable_product_option_from_product_detail.jmx</stringProp></com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  addConfigurableProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          variant_sku: \"${product_option}\"\n          data: {\n            quantity: 2\n            sku: \"${product_option}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        id\n        quantity\n        product {\n          name\n          sku\n        }\n        ... on ConfigurableCartItem {\n          configurable_options {\n            option_label\n          }\n        }\n    }\n  }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/add_configurable_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addConfigurableProductsToCart</stringProp>
          <stringProp name="675049292">"sku":"${product_option}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Email Available" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setGuestEmailOnCart(input: \n    {\n      cart_id: \"${quote_id}\" \n email: \"test@example.com\" \n  }) {\n    cart {\n      email \n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/checkout_email_available.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.setGuestEmailOnCart.cart.email</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Billing Address On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setBillingAddressOnCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      billing_address: {\n        address: {\n          firstname: \"test firstname\"\n          lastname: \"test lastname\"\n          company: \"test company\"\n          street: [\"test street 1\", \"test street 2\"]\n          city: \"test city\"\n          region: \"AZ\"\n          postcode: \"887766\"\n          country_code: \"US\"\n          telephone: \"88776655\"\n          save_in_address_book: false\n        }\n      }\n    }\n  ) {\n    cart {\n      billing_address {\n        firstname\n        lastname\n        company\n        street\n        city\n        postcode\n        telephone\n        country {\n          code\n          label\n        }\n        }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_billing_address_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1147076914">{"data":{"setBillingAddressOnCart":{"cart":{"billing_address":{"firstname":"test firstname","lastname":"test lastname","company":"test company","street":["test street 1","test street 2"],"city":"test city","postcode":"887766","telephone":"88776655","country":{"code":"US","label":"US"}}}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Shipping Address On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setShippingAddressesOnCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      shipping_addresses: [\n        {\n          address: {\n            firstname: \"test firstname\"\n            lastname: \"test lastname\"\n            company: \"test company\"\n            street: [\"test street 1\", \"test street 2\"]\n            city: \"test city\"\n            region: \"AZ\"\n            postcode: \"887766\"\n            country_code: \"US\"\n            telephone: \"88776655\"\n            save_in_address_book: false\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      shipping_addresses {\n        firstname\n        lastname\n        company\n        street\n        city\n        postcode\n        telephone\n        country {\n          code\n          label\n        }\n        }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_shipping_address_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1671866339">{"data":{"setShippingAddressesOnCart":{"cart":{"shipping_addresses":[{"firstname":"test firstname","lastname":"test lastname","company":"test company","street":["test street 1","test street 2"],"city":"test city","postcode":"887766","telephone":"88776655","country":{"code":"US","label":"US"}}]}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Payment Method On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setPaymentMethodOnCart(input: {\n    cart_id: \"${quote_id}\", \n    payment_method: {\n      code: \"checkmo\"\n    }\n  }) {\n    cart {\n      selected_payment_method {\n        code\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_payment_method_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1830199373">{"data":{"setPaymentMethodOnCart":{"cart":{"selected_payment_method":{"code":"checkmo"}}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Current Shipping Address" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    shipping_addresses {\n      postcode\n      }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_current_shipping_address.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Shipping Method On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setShippingMethodsOnCart(input: \n    {\n      cart_id: \"${quote_id}\", \n      shipping_methods: [{\n        carrier_code: \"flatrate\"\n        method_code: \"flatrate\"\n      }]\n    }) {\n    cart {\n      shipping_addresses {\n        selected_shipping_method {\n          carrier_code\n          method_code\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_shipping_method_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="644143859">{"data":{"setShippingMethodsOnCart":{"cart":{"shipping_addresses":[{"selected_shipping_method":{"carrier_code":"flatrate","method_code":"flatrate"}}]}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Place Order" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  placeOrder(input: \n    {\n      cart_id: \"${quote_id}\" \n    }) {\n    order {\n      order_number \n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/place_order.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.placeOrder.order.order_number</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Checkout By Customer" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cCheckoutByCustomerPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Checkout By Customer");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customerUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  generateCustomerToken(\n email: \"${customer_email}\" \n password: \"${customer_password}\" \n  ) {\n    token \n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/login.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract item id" enabled="true">
        <stringProp name="VAR">customer_token</stringProp>
        <stringProp name="JSONPATH">$.data.generateCustomerToken.token</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.generateCustomerToken.token</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  createEmptyCart\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/create_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">quote_id</stringProp>
        <stringProp name="JSONPATH">$.data.createEmptyCart</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1404608713">{"data":{"createEmptyCart":"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Empty Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    items {\n      id\n      quantity\n      product {\n        sku\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_empty_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1901638450">{"data":{"cart":{"items":[]}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Home Page" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
            {"query":"query getCmsPage($identifier: String!, $onServer: Boolean!) {\n  cmsPage(identifier: $identifier) {\n    url_key\n    content\n    content_heading\n    title\n    page_layout\n    meta_title @include(if: $onServer)\n    meta_keywords @include(if: $onServer)\n    meta_description @include(if: $onServer)\n  }\n}","variables":{"identifier":"home","onServer":false},"operationName":"getCmsPage"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_home_page.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.cmsPage.url_key</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Category List" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
            {"query" : "{\n categoryList(filters:{}) {\n  id\n  children {\n   id\n   name\n   url_key\n   url_path\n   children_count\n   path\n   image\n   productImagePreview: products(pageSize: 1, sort: {name: ASC}) {\n    items {\n     small_image {\n       label\n       url\n     }\n    }\n   }\n  }\n }\n}"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_list_of_categories.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.categoryList</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get List of Products by category_id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query category($id: Int!, $currentPage: Int, $pageSize: Int) {\n  category(id: $id) {\n    product_count\n    description\n    url_key\n    name\n    id\n    breadcrumbs {\n      category_name\n      category_url_key\n      __typename\n    }\n    products(pageSize: $pageSize, currentPage: $currentPage, sort: {name: ASC}) {\n      total_count\n      items {\n        id\n        name\n        # small_image\n        # short_description\n        url_key\n        special_price\n        special_from_date\n        special_to_date\n        price {\n          regularPrice {\n            amount {\n              value\n              currency\n              __typename\n            }\n            __typename\n          }\n          __typename\n        }\n        __typename\n      }\n      __typename\n    }\n    __typename\n  }\n}\n","variables":{"id":${category_id},"currentPage":1,"pageSize":12},"operationName":"category"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_list_of_products_by_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"name":"${category_name}","id":${category_id},</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Simple Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_simple_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {  \n  addSimpleProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          data: {\n            quantity: 2\n            sku: \"${product_sku}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        quantity\n        product {\n          sku\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/add_simple_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addSimpleProductsToCart</stringProp>
          <stringProp name="-1173443935">"sku":"${product_sku}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Configurable Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"query productDetail($urlKey: String, $onServer: Boolean!) {\n    productDetail: products(filter: { url_key: { eq: $urlKey } }, sort: {name: ASC}) {\n        items {\n            sku\n            name\n            price {\n                regularPrice {\n                    amount {\n                        currency\n                        value\n                    }\n                }\n            }\n            description {html}\n            media_gallery_entries {\n                label\n                position\n                disabled\n                file\n            }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    attribute_code\n                    attribute_id\n                    id\n                    label\n                    values {\n                        default_label\n                        label\n                        store_label\n                        use_default_value\n                        value_index\n                    }\n                }\n                variants {\n                    product {\n                        id\n                        media_gallery_entries {\n                            disabled\n                            file\n                            label\n                            position\n                        }\n                        sku\n                        stock_status\n                    }\n                }\n            }\n            meta_title @include(if: $onServer)\n            # Yes, Products have `meta_keyword` and\n            # everything else has `meta_keywords`.\n            meta_keyword @include(if: $onServer)\n            meta_description @include(if: $onServer)\n        }\n    }\n}","variables":{"urlKey":"${product_url_key}","onServer":false},"operationName":"productDetail"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_configurable_product_details_by_product_url_key.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1201352014">"sku":"${product_sku}","name":"${product_name}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract Configurable Product option" enabled="true">
      <stringProp name="VAR">product_option</stringProp>
      <stringProp name="JSONPATH">$.data.productDetail.items[0].variants[0].product.sku</stringProp>
      <stringProp name="DEFAULT"/>
      <stringProp name="VARIABLE"/>
      <stringProp name="SUBJECT">BODY</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/extract_configurable_product_option_from_product_detail.jmx</stringProp></com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  addConfigurableProductsToCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      cart_items: [\n        {\n          variant_sku: \"${product_option}\"\n          data: {\n            quantity: 2\n            sku: \"${product_option}\"\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      items {\n        id\n        quantity\n        product {\n          name\n          sku\n        }\n        ... on ConfigurableCartItem {\n          configurable_options {\n            option_label\n          }\n        }\n    }\n  }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/add_configurable_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1421843282">addConfigurableProductsToCart</stringProp>
          <stringProp name="675049292">"sku":"${product_option}"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Billing Address On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setBillingAddressOnCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      billing_address: {\n        address: {\n          firstname: \"test firstname\"\n          lastname: \"test lastname\"\n          company: \"test company\"\n          street: [\"test street 1\", \"test street 2\"]\n          city: \"test city\"\n          region: \"AZ\"\n          postcode: \"887766\"\n          country_code: \"US\"\n          telephone: \"88776655\"\n          save_in_address_book: false\n        }\n      }\n    }\n  ) {\n    cart {\n      billing_address {\n        firstname\n        lastname\n        company\n        street\n        city\n        postcode\n        telephone\n        country {\n          code\n          label\n        }\n        }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_billing_address_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1147076914">{"data":{"setBillingAddressOnCart":{"cart":{"billing_address":{"firstname":"test firstname","lastname":"test lastname","company":"test company","street":["test street 1","test street 2"],"city":"test city","postcode":"887766","telephone":"88776655","country":{"code":"US","label":"US"}}}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Shipping Address On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setShippingAddressesOnCart(\n    input: {\n      cart_id: \"${quote_id}\"\n      shipping_addresses: [\n        {\n          address: {\n            firstname: \"test firstname\"\n            lastname: \"test lastname\"\n            company: \"test company\"\n            street: [\"test street 1\", \"test street 2\"]\n            city: \"test city\"\n            region: \"AZ\"\n            postcode: \"887766\"\n            country_code: \"US\"\n            telephone: \"88776655\"\n            save_in_address_book: false\n          }\n        }\n      ]\n    }\n  ) {\n    cart {\n      shipping_addresses {\n        firstname\n        lastname\n        company\n        street\n        city\n        postcode\n        telephone\n        country {\n          code\n          label\n        }\n        }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_shipping_address_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1671866339">{"data":{"setShippingAddressesOnCart":{"cart":{"shipping_addresses":[{"firstname":"test firstname","lastname":"test lastname","company":"test company","street":["test street 1","test street 2"],"city":"test city","postcode":"887766","telephone":"88776655","country":{"code":"US","label":"US"}}]}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Payment Method On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setPaymentMethodOnCart(input: {\n    cart_id: \"${quote_id}\", \n    payment_method: {\n      code: \"checkmo\"\n    }\n  }) {\n    cart {\n      selected_payment_method {\n        code\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_payment_method_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1830199373">{"data":{"setPaymentMethodOnCart":{"cart":{"selected_payment_method":{"code":"checkmo"}}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Current Shipping Address" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  cart(cart_id: \"${quote_id}\") {\n    shipping_addresses {\n      postcode\n      }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_current_shipping_address.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Set Shipping Method On Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  setShippingMethodsOnCart(input: \n    {\n      cart_id: \"${quote_id}\", \n      shipping_methods: [{\n        carrier_code: \"flatrate\"\n        method_code: \"flatrate\"\n      }]\n    }) {\n    cart {\n      shipping_addresses {\n        selected_shipping_method {\n          carrier_code\n          method_code\n        }\n      }\n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_shipping_method_on_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="644143859">{"data":{"setShippingMethodsOnCart":{"cart":{"shipping_addresses":[{"selected_shipping_method":{"carrier_code":"flatrate","method_code":"flatrate"}}]}}}}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">8</intProp>
      </ResponseAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Place Order" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  placeOrder(input: \n    {\n      cart_id: \"${quote_id}\" \n    }) {\n    order {\n      order_number \n    }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/place_order.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.placeOrder.order.order_number</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  revokeCustomerToken {\n    result \n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/logout.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.revokeCustomerToken.result</stringProp>
        <stringProp name="EXPECTED_VALUE">true</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Account management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAccountManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Account management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customerUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Home Page" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
            {"query":"query getCmsPage($identifier: String!, $onServer: Boolean!) {\n  cmsPage(identifier: $identifier) {\n    url_key\n    content\n    content_heading\n    title\n    page_layout\n    meta_title @include(if: $onServer)\n    meta_keywords @include(if: $onServer)\n    meta_description @include(if: $onServer)\n  }\n}","variables":{"identifier":"home","onServer":false},"operationName":"getCmsPage"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_home_page.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.cmsPage.url_key</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  generateCustomerToken(\n email: \"${customer_email}\" \n password: \"${customer_password}\" \n  ) {\n    token \n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/login.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract item id" enabled="true">
        <stringProp name="VAR">customer_token</stringProp>
        <stringProp name="JSONPATH">$.data.generateCustomerToken.token</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.generateCustomerToken.token</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Orders" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":" { \n customer \n { orders \n {\n    items {\n id \n number \n order_date \n    status \n  } \n  }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/my_orders.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract order number" enabled="true">
        <stringProp name="VAR">order_number</stringProp>
        <stringProp name="JSONPATH">$.data.customer.orders.items[0].number</stringProp>
        <stringProp name="DEFAULT">NOT_FOUND</stringProp>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.customer.orders</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Orders Controller" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/if_orders.jmx</stringProp>
        <stringProp name="IfController.condition">"${order_number}" != "NOT_FOUND"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      </IfController>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View Orders" enabled="true">
          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
            <collectionProp name="Arguments.arguments">
              <elementProp name="" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                <stringProp name="Argument.value">{"query":" { \n customer \n { orders(filter: {number: {eq: \"${order_number}\"}}) \n {\n    items {\n id \n number \n order_date \n    status \n  items { \n product_name \n product_sku \n product_url_key \n product_sale_price { \n value \n } \n product_sale_price { \n value \n currency \n } \n quantity_ordered \n quantity_invoiced \n quantity_shipped \n } \n carrier \n shipments { \n id \n number \n items { \n product_name \n quantity_shipped \n } \n } \n total { \n base_grand_total { \n value \n currency \n } \n grand_total { \n value \n currency \n } \n total_tax { \n value \n } \n subtotal { \n value \n currency \n } \n taxes { \n amount { \n value \n currency \n } \n title \n rate \n } \n total_shipping { \n value \n } \n shipping_handling { \n amount_including_tax { \n value \n } \n amount_excluding_tax { \n value \n } \n total_amount { \n value \n } \n taxes { \n amount { \n value \n } \n title \n rate \n } \n } \n discounts { \n amount { \n value \n currency \n } \n label \n } \n } \n } \n  }\n  }\n}","variables":null,"operationName":null}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
          <stringProp name="HTTPSampler.method">POST</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
          <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/if_orders.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract shipments id" enabled="true">
            <stringProp name="VAR">shipments_id</stringProp>
            <stringProp name="JSONPATH">$.data.customer.orders.items[0].shipments.id</stringProp>
            <stringProp name="DEFAULT">NOT_FOUND</stringProp>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
            <stringProp name="JSON_PATH">$.data.customer.orders.items</stringProp>
            <stringProp name="EXPECTED_VALUE"/>
            <boolProp name="JSONVALIDATION">false</boolProp>
            <boolProp name="EXPECT_NULL">false</boolProp>
            <boolProp name="INVERT">false</boolProp>
            <boolProp name="ISREGEX">false</boolProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
          <hashTree/>
      </hashTree>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="My Downloadable Products" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":" { \n customerDownloadableProducts {\n  items \n { \n date \n download_url \n order_increment_id \n remaining_downloads \n status \n } \n } \n }","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/my_downloadable_products.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.customerDownloadableProducts.items</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Wishlist" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":" { \n customer {\n  wishlist \n { \n id \n items_count \n sharing_code \n updated_at \n } \n } \n }","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/my_wish_list.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.customer.wishlist.items_count</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"mutation {\n  revokeCustomerToken {\n    result \n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/logout.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.revokeCustomerToken.result</stringProp>
        <stringProp name="EXPECTED_VALUE">true</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Customer to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Admin CMS Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminCMSManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Admin CMS Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin CMS Management" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_cms_management/admin_cms_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/new</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="content" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;CMS Content ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">content</stringProp>
            </elementProp>
            <elementProp name="content_heading" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">content_heading</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
            <elementProp name="identifier" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">identifier</stringProp>
            </elementProp>
            <elementProp name="is_active" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_active</stringProp>
            </elementProp>
            <elementProp name="layout_update_xml" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">layout_update_xml</stringProp>
            </elementProp>
            <elementProp name="meta_description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_description</stringProp>
            </elementProp>
            <elementProp name="meta_keywords" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_keywords</stringProp>
            </elementProp>
            <elementProp name="meta_title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_title</stringProp>
            </elementProp>
            <elementProp name="nodes_data" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">nodes_data</stringProp>
            </elementProp>
            <elementProp name="node_ids" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">node_ids</stringProp>
            </elementProp>
            <elementProp name="page_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">page_id</stringProp>
            </elementProp>
            <elementProp name="page_layout" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1column</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">page_layout</stringProp>
            </elementProp>
            <elementProp name="store_id[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_id[0]</stringProp>
            </elementProp>
            <elementProp name="title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">CMS Title ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">title</stringProp>
            </elementProp>
            <elementProp name="website_root" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">website_root</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-398886250">You saved the page.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCMSManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Admin Browse Product Grid" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminBrowseProductGridPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Admin Browse Product Grid");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="script">
        vars.put("gridEntityType" , "Product");

        pagesCount = parseInt(vars.get("products_page_size")) || 20;
        vars.put("grid_entity_page_size" , pagesCount);
        vars.put("grid_namespace" , "product_listing");
        vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_product_filter_text"));
        vars.put("grid_filter_field", "name");

        // set sort fields and sort directions
        vars.put("grid_sort_field_1", "name");
        vars.put("grid_sort_field_2", "price");
        vars.put("grid_sort_field_3", "attribute_set_id");
        vars.put("grid_sort_order_1", "asc");
        vars.put("grid_sort_order_2", "desc");
      </stringProp>
      <stringProp name="scriptLanguage">javascript</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_browse_products_grid/setup.jmx</stringProp></JSR223PostProcessor>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} pages count" enabled="true">
        <stringProp name="cacheKey"/>
        <stringProp name="filename"/>
        <stringProp name="parameters"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
          var totalsRecord = parseInt(vars.get("entity_total_records"));
          var pageCount = Math.round(totalsRecord/pageSize);

          vars.put("grid_pages_count", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Filtered Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} filtered pages count" enabled="true">
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
var totalsRecord = parseInt(vars.get("entity_total_records"));
var pageCount = Math.round(totalsRecord/pageSize);

vars.put("grid_pages_count_filtered", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${page_number}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select Filtered ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count_filtered}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="View ${gridEntityType} page - Filtering + Sorting" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Field Defined" enabled="true">
        <stringProp name="ForeachController.inputVal">grid_sort_field</stringProp>
        <stringProp name="ForeachController.returnVal">grid_sort_field</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
        <stringProp name="ForeachController.startIndex">0</stringProp>
        <stringProp name="ForeachController.endIndex">3</stringProp>
      </ForeachController>
      <hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Order Defined" enabled="true">
          <stringProp name="ForeachController.inputVal">grid_sort_order</stringProp>
          <stringProp name="ForeachController.returnVal">grid_sort_order</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
          <stringProp name="ForeachController.startIndex">0</stringProp>
          <stringProp name="ForeachController.endIndex">2</stringProp>
        </ForeachController>
        <hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page - Filtering + Sort By ${grid_sort_field} ${grid_sort_order}" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
              <collectionProp name="Arguments.arguments">
                <elementProp name="namespace" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_namespace}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">namespace</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[${grid_filter_field}]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[${grid_filter_field}]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[placeholder]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[placeholder]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[pageSize]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[pageSize]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[current]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${page_number}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[current]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[field]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_field}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[field]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[direction]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_order}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[direction]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="isAjax" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">isAjax</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
          </HTTPSamplerProxy>
          <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
              </collectionProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Admin Browse Order Grid" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminBrowseOrderGridPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Admin Browse Order Grid");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="script">
        vars.put("gridEntityType" , "Order");

        pagesCount = parseInt(vars.get("orders_page_size")) || 20;
        vars.put("grid_entity_page_size" , pagesCount);
        vars.put("grid_namespace" , "sales_order_grid");
        vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_orders_filter_text"));
        vars.put("grid_filter_field", "status");

        // set sort fields and sort directions
        vars.put("grid_sort_field_1", "increment_id");
        vars.put("grid_sort_field_2", "created_at");
        vars.put("grid_sort_field_3", "billing_name");
        vars.put("grid_sort_order_1", "asc");
        vars.put("grid_sort_order_2", "desc");
      </stringProp>
      <stringProp name="scriptLanguage">javascript</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_browse_orders_grid/setup.jmx</stringProp></JSR223PostProcessor>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} pages count" enabled="true">
        <stringProp name="cacheKey"/>
        <stringProp name="filename"/>
        <stringProp name="parameters"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
          var totalsRecord = parseInt(vars.get("entity_total_records"));
          var pageCount = Math.round(totalsRecord/pageSize);

          vars.put("grid_pages_count", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Filtered Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} filtered pages count" enabled="true">
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
var totalsRecord = parseInt(vars.get("entity_total_records"));
var pageCount = Math.round(totalsRecord/pageSize);

vars.put("grid_pages_count_filtered", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${page_number}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select Filtered ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count_filtered}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="View ${gridEntityType} page - Filtering + Sorting" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Field Defined" enabled="true">
        <stringProp name="ForeachController.inputVal">grid_sort_field</stringProp>
        <stringProp name="ForeachController.returnVal">grid_sort_field</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
        <stringProp name="ForeachController.startIndex">0</stringProp>
        <stringProp name="ForeachController.endIndex">3</stringProp>
      </ForeachController>
      <hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Order Defined" enabled="true">
          <stringProp name="ForeachController.inputVal">grid_sort_order</stringProp>
          <stringProp name="ForeachController.returnVal">grid_sort_order</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
          <stringProp name="ForeachController.startIndex">0</stringProp>
          <stringProp name="ForeachController.endIndex">2</stringProp>
        </ForeachController>
        <hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page - Filtering + Sort By ${grid_sort_field} ${grid_sort_order}" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
              <collectionProp name="Arguments.arguments">
                <elementProp name="namespace" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_namespace}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">namespace</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[${grid_filter_field}]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[${grid_filter_field}]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[placeholder]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[placeholder]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[pageSize]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[pageSize]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[current]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${page_number}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[current]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[field]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_field}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[field]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[direction]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_order}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[direction]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="isAjax" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">isAjax</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
          </HTTPSamplerProxy>
          <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
              </collectionProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Admin Create Product" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminProductCreationPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Admin Create Product");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Once Only Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/once_only_controller.jmx</stringProp>
</OnceOnlyController>
    <hashTree>
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Related Product Id" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/get_related_product_id.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom});
}
relatedIndex = random.nextInt(props.get("simple_products_list").size());
vars.put("related_product_id", props.get("simple_products_list").get(relatedIndex).get("id"));</stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="SetUp - Get Product Attributes" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^.{10,}$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - API Get product attributes" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">mycolor</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">attribute_code</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][1][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">mysize</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][1][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">attribute_code</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][field]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attributes</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/get_product_attributes.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product attributes" enabled="true">
        <stringProp name="VAR">product_attributes</stringProp>
        <stringProp name="JSONPATH">$.items</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="SetUp - Prepare product attributes" enabled="true">
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey"/>
        <stringProp name="script">
var attributesData = JSON.parse(vars.get("product_attributes")),
maxOptions = 2;

attributes = [];
for (i in attributesData) {
    if (i &gt;= 2) {
        break;
    }
    var data = attributesData[i],
        attribute = {
            "id": data.attribute_id,
            "code": data.attribute_code,
            "label": data.default_frontend_label,
            "options": []
        };

    var processedOptions = 0;
    for (optionN in data.options) {
        var option = data.options[optionN];
        if (parseInt(option.value) &gt; 0 &amp;&amp; processedOptions &lt; maxOptions) {
            processedOptions++;
            attribute.options.push(option);
        }
    }
    attributes.push(attribute);
}

vars.putObject("product_attributes", attributes);
</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get Attribute Set Id" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product_set/index/filter/${attribute_set_filter}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_setup_attribute_set.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">attribute_set_id</stringProp>
        <stringProp name="RegexExtractor.regex">catalog&amp;#x2F;product_set&amp;#x2F;edit&amp;#x2F;id&amp;#x2F;([\d]+)&amp;#x2F;"[\D\d]*Attribute Set 1</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="SetUp - Set Attribute Set Filter" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">import org.apache.commons.codec.binary.Base64;

byte[] encodedBytes = Base64.encodeBase64("set_name=Attribute Set 1".getBytes());
vars.put("attribute_set_filter", new String(encodedBytes));
</stringProp>
      </BeanShellPreProcessor>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();
int number1;

if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom});
}
number = random.nextInt(props.get("simple_products_list_for_edit").size());

simpleList = props.get("simple_products_list_for_edit").get(number);
vars.put("simple_product_1_id", simpleList.get("id"));
vars.put("simple_product_1_name", simpleList.get("title"));

do {
    number1 = random.nextInt(props.get("simple_products_list_for_edit").size());
} while(number == number1);
simpleList = props.get("simple_products_list_for_edit").get(number1);
vars.put("simple_product_2_id", simpleList.get("id"));
vars.put("simple_product_2_name", simpleList.get("title"));

number2 = random.nextInt(props.get("configurable_products_list").size());
configurableList = props.get("configurable_products_list").get(number2);
vars.put("configurable_product_1_id", configurableList.get("id"));
vars.put("configurable_product_1_url_key", configurableList.get("url_key"));
vars.put("configurable_product_1_name", configurableList.get("title"));

//Additional category to be added
//int categoryId = Integer.parseInt(vars.get("simple_product_category_id"));
//vars.put("category_additional", (categoryId+1).toString());
//New price
vars.put("price_new", "9999");
//New special price
vars.put("special_price_new", "8888");
//New quantity
vars.put("quantity_new", "100600");
vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNum}-${__Random(1,1000000)}");

      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Bundle Product" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/create_bundle_product.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1509986340">records found</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/4/type/bundle/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-144461265">New Product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product  ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">42</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variations]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            </elementProp>
            <elementProp name="product[shipment_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[shipment_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][title]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][required]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][product_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">25</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][product_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10.99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][title]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][required]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">7.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="affect_bundle_product_selections" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_bundle_product_selections</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/4/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1853918323">{"error":false}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">42</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full bundle product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variations]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            </elementProp>
            <elementProp name="product[shipment_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[shipment_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][required]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">25</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10.99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][required]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">7.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="affect_bundle_product_selections" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_bundle_product_selections</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/4/type/bundle/back/edit/active_tab/product-details/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-583471546">You saved the product</stringProp>
            <stringProp name="-1534079309">option title one</stringProp>
            <stringProp name="-1534074215">option title two</stringProp>
            <stringProp name="1304788671">${simple_product_2_name}</stringProp>
            <stringProp name="417284990">${simple_product_1_name}</stringProp>
          </collectionProp>

          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Create Configurable Product" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/open_catalog_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1509986340">records found</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Configurable Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/${attribute_set_id}/type/configurable/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/new_configurable.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-144461265">New Product</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Configurable Product Validate" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="ajax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">ajax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[affect_product_custom_options]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[affect_product_custom_options]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[attribute_set_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[attribute_set_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[category_ids][0]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">4</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[category_ids][0]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Description</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Keyword</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_title]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Title</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_title]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[name]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[name]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[options_container]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">container2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[options_container]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[product_has_weight]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[short_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[short_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[sku]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[sku]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[small_image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[small_image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[special_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${special_price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[special_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[status]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[status]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[thumbnail]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[thumbnail]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[url_key]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[url_key]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[visibility]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">4</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[visibility]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[website_ids][1]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[website_ids][1]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="links[related][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[related][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/${attribute_set_id}/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_validate.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1853918323">{"error":false}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Prepare Configurable Data" enabled="true">
            <stringProp name="scriptLanguage">javascript</stringProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="cacheKey"/>
            <stringProp name="script">
attributes = vars.getObject("product_attributes");

for (i in attributes) {
    var attribute = attributes[i];
    sampler.addArgument("attribute_codes[" + i + "]", attribute.code);
    sampler.addArgument("attributes[" + i + "]", attribute.id);
    sampler.addArgument("product[" + attribute.code + "]", attribute.options[0].value);
    addConfigurableAttributeData(attribute);
}

addConfigurableMatrix(attributes);

function addConfigurableAttributeData(attribute) {
    var attributeId = attribute.id;

    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attribute.code);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attribute.label);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][position]", 0);
    attribute.options.forEach(function (option, index) {
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][include]", index);
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][value_index]", option.value);
    });
}

/**
 * Build 4 simple products for Configurable
 */
function addConfigurableMatrix(attributes) {

    var attribute1 = attributes[0],
        attribute2 = attributes[1],
        productIndex = 1,
        products = [];
    var variationNames = [];
    attribute1.options.forEach(function (option1) {
        attribute2.options.forEach(function (option2) {
            var productAttributes = {},
                namePart = option1.label + "+" + option2.label,
                variationKey = option1.value + "-" + option2.value;
            productAttributes[attribute1.code] = option1.value;
            productAttributes[attribute2.code] = option2.value;

            variationNames.push(namePart + " - " + vars.get("configurable_sku"));
            var product = {
                "id": null,
                "name": namePart + " - " + vars.get("configurable_sku"),
                "sku": namePart + " - " + vars.get("configurable_sku"),
                "status": 1,
                "price": "100",
                "price_currency": "$",
                "price_string": "$100",
                "weight": "6",
                "qty": "50",
                "variationKey": variationKey,
                "configurable_attribute": JSON.stringify(productAttributes),
                "thumbnail_image": "",
                "media_gallery": {"images": {}},
                "image": [],
                "was_changed": true,
                "canEdit": 1,
                "newProduct": 1,
                "record_id": productIndex
            };
            productIndex++;
            products.push(product);
        });
    });

    sampler.addArgument("configurable-matrix-serialized", JSON.stringify(products));
    vars.putObject("configurable_variations_assertion", variationNames);
}
            </stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Configurable Product Save" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="ajax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">ajax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[affect_product_custom_options]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[affect_product_custom_options]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[attribute_set_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[attribute_set_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[category_ids][0]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[category_ids][0]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Description</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Keyword</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_title]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Title</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_title]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[name]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[name]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[options_container]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">container2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[options_container]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[product_has_weight]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[short_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[short_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[sku]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[sku]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[small_image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[small_image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[special_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${special_price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[special_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[status]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[status]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[thumbnail]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[thumbnail]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[url_key]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[url_key]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[visibility]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">4</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[visibility]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[website_ids][1]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[website_ids][1]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="links[related][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[related][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/${attribute_set_id}/type/configurable/back/edit/active_tab/product-details/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_save.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-583471546">You saved the product</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Assert Variation" enabled="true">
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey"/>
        <stringProp name="script">
var configurableVariations = vars.getObject("configurable_variations_assertion"),
response = SampleResult.getResponseDataAsString();

configurableVariations.forEach(function (variation) {
    if (response.indexOf(variation) == -1) {
        AssertionResult.setFailureMessage("Cannot find variation \"" + variation + "\"");
        AssertionResult.setFailure(true);
    }
});
</stringProp>
      </JSR223Assertion>
      <hashTree/>
    
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Prepare Configurable Data" enabled="true">
            <stringProp name="scriptLanguage">javascript</stringProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="cacheKey"/>
            <stringProp name="script">
attributes = vars.getObject("product_attributes");

for (i in attributes) {
    var attribute = attributes[i];
    sampler.addArgument("attribute_codes[" + i + "]", attribute.code);
    sampler.addArgument("attributes[" + i + "]", attribute.id);
    sampler.addArgument("product[" + attribute.code + "]", attribute.options[0].value);
    addConfigurableAttributeData(attribute);
}

addConfigurableMatrix(attributes);

function addConfigurableAttributeData(attribute) {
    var attributeId = attribute.id;

    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attribute.code);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attribute.label);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][position]", 0);
    attribute.options.forEach(function (option, index) {
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][include]", index);
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][value_index]", option.value);
    });
}

/**
 * Build 4 simple products for Configurable
 */
function addConfigurableMatrix(attributes) {

    var attribute1 = attributes[0],
        attribute2 = attributes[1],
        productIndex = 1,
        products = [];
    var variationNames = [];
    attribute1.options.forEach(function (option1) {
        attribute2.options.forEach(function (option2) {
            var productAttributes = {},
                namePart = option1.label + "+" + option2.label,
                variationKey = option1.value + "-" + option2.value;
            productAttributes[attribute1.code] = option1.value;
            productAttributes[attribute2.code] = option2.value;

            variationNames.push(namePart + " - " + vars.get("configurable_sku"));
            var product = {
                "id": null,
                "name": namePart + " - " + vars.get("configurable_sku"),
                "sku": namePart + " - " + vars.get("configurable_sku"),
                "status": 1,
                "price": "100",
                "price_currency": "$",
                "price_string": "$100",
                "weight": "6",
                "qty": "50",
                "variationKey": variationKey,
                "configurable_attribute": JSON.stringify(productAttributes),
                "thumbnail_image": "",
                "media_gallery": {"images": {}},
                "image": [],
                "was_changed": true,
                "canEdit": 1,
                "newProduct": 1,
                "record_id": productIndex
            };
            productIndex++;
            products.push(product);
        });
    });

    sampler.addArgument("configurable-matrix-serialized", JSON.stringify(products));
    vars.putObject("configurable_variations_assertion", variationNames);
}
            </stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Downloadable Product" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/create_downloadable_product.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1509986340">records found</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/4/type/downloadable/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-144461265">New Product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Upload Original File" enabled="true">
        <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
          <collectionProp name="HTTPFileArgs.files">
            <elementProp name="${files_folder}downloadable_original.txt" elementType="HTTPFileArg">
              <stringProp name="File.path">${files_folder}downloadable_original.txt</stringProp>
              <stringProp name="File.paramname">links</stringProp>
              <stringProp name="File.mimetype">text/plain</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/downloadable_file/upload/type/links/?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract original file" enabled="true">
          <stringProp name="VAR">original_file</stringProp>
          <stringProp name="JSONPATH">$.file</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Upload Sample File" enabled="true">
        <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
          <collectionProp name="HTTPFileArgs.files">
            <elementProp name="${files_folder}downloadable_sample.txt" elementType="HTTPFileArg">
              <stringProp name="File.path">${files_folder}downloadable_sample.txt</stringProp>
              <stringProp name="File.paramname">samples</stringProp>
              <stringProp name="File.mimetype">text/plain</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/downloadable_file/upload/type/samples/?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract sample file" enabled="true">
          <stringProp name="VAR">sample_file</stringProp>
          <stringProp name="JSONPATH">$.file</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Product Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="is_downloadable" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">on</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_downloadable</stringProp>
            </elementProp>
            <elementProp name="product[links_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Links</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[links_title]</stringProp>
            </elementProp>
            <elementProp name="product[links_purchased_separately]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[links_purchased_separately]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${original_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_original.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">13</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_shareable]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_shareable]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_unlimited]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_unlimited]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][link_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][link_url]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][number_of_downloads]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][number_of_downloads]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">120</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][price]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][record_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][type]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][url]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sort_order]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Original Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][title]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][type]</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${sample_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_sample.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">14</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][record_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sample_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sample_url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sort_order]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Sample Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][title]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/4/type/downloadable/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1853918323">{"error":false}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Product Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${original_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_original.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">13</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_shareable]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_shareable]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_unlimited]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_unlimited]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][link_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][link_url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][number_of_downloads]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][number_of_downloads]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">120</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][price]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][record_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sort_order]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Original Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][title]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${sample_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_sample.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">14</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][record_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sample_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sample_url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sort_order]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Sample Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][title]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/4/type/downloadable/back/edit/active_tab/product-details/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-583471546">You saved the product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1600986843">violation</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">6</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Simple Product" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/create_simple_product.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1509986340">records found</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Simple Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/4/type/simple/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-144461265">New Product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Simple Product Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_require]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_group]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Product Option Title One</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">200</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Row Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_require]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][max_characters]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">250</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][max_characters]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">text</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_group]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Field Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/4/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1853918323">{"error":false}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Simple Product Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full simple product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_require]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_group]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Product Option Title One</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][title]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][type]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">200</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price_type]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sku]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sort_order]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Row Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][title]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_require]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][max_characters]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">250</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][max_characters]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">text</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_group]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_type]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price_type]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sku]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sort_order]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Field Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][title]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][type]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/4/type/simple/back/edit/active_tab/product-details/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-583471546">You saved the product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1600986843">violation</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">6</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Admin Edit Product" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminProductEditingPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Admin Edit Product");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Edit Product" enabled="true"/>
              <hashTree>
                <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Generate Unique Ids for each Thread" enabled="true">
                  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_product/admin_edit_product_updated.jmx</stringProp>
                  <stringProp name="BeanShellSampler.query">import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Random;

    int relatedIndex;
    try {
    Random random = new Random();
    if (${seedForRandom} &gt; 0) {
      random.setSeed(${seedForRandom} + ${__threadNum});
    }
    simpleCount = props.get("simple_products_list_for_edit").size();
    configCount = props.get("configurable_products_list_for_edit").size();
    productCount = 0;
    if (simpleCount &gt; configCount) {
    	productCount = configCount;
    } else {
    	productCount = simpleCount;
    }
    int threadsNumber = ctx.getThreadGroup().getNumThreads();
    if (threadsNumber == 0) {
    	threadsNumber = 1;
    }
    //Current thread number starts from 0
    currentThreadNum = ctx.getThreadNum();

    String siterator = vars.get("threadIterator_" + currentThreadNum.toString());
    iterator = 0;
    if(siterator == null){
    	vars.put("threadIterator_" + currentThreadNum.toString() , "0");
    } else {
    	iterator = Integer.parseInt(siterator);
    	iterator ++;
    	vars.put("threadIterator_" + currentThreadNum.toString() , iterator.toString());
    }

    //Number of products for one thread
    productClusterLength = productCount / threadsNumber;

    if (iterator &gt;= productClusterLength) {
    	vars.put("threadIterator_" + currentThreadNum.toString(), "0");
    	iterator = 0;
    }

    //Index of the current product from the cluster
    i = productClusterLength * currentThreadNum + iterator;

    //ids of simple and configurable products to edit
    vars.put("simple_product_id", props.get("simple_products_list_for_edit").get(i).get("id"));
    vars.put("configurable_product_id", props.get("configurable_products_list_for_edit").get(i).get("id"));

    //id of related product
    do {
    	relatedIndex = random.nextInt(props.get("simple_products_list_for_edit").size());
    } while(i == relatedIndex);
    vars.put("related_product_id", props.get("simple_products_list_for_edit").get(relatedIndex).get("id"));
    } catch (Exception ex) {
    log.info("Script execution failed", ex);
}</stringProp>
                  <stringProp name="BeanShellSampler.filename"/>
                  <stringProp name="BeanShellSampler.parameters"/>
                  <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
                </BeanShellSampler>
                <hashTree/>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Simple Product" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments"/>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/edit/id/${simple_product_id}/</stringProp>
                  <stringProp name="HTTPSampler.method">GET</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1355179215">Product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">16</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract name" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">simple_product_name</stringProp>
                    <stringProp name="RegexExtractor.regex">,"name":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract sku" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">simple_product_sku</stringProp>
                    <stringProp name="RegexExtractor.regex">,"sku":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">simple_product_category_id</stringProp>
                    <stringProp name="RegexExtractor.regex">,"category_ids":."(\d+)".</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                </hashTree>
                <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set updated values" enabled="true">
                  <stringProp name="TestPlan.comments">Passing arguments between threads</stringProp>
                  <stringProp name="BeanShellSampler.query">//Additional category to be added
                    import java.util.Random;

                        Random randomGenerator = new Random();
                        int newCategoryId;
                        if (${seedForRandom} &gt; 0) {
                          randomGenerator.setSeed(${seedForRandom} + ${__threadNum});
                        }

                        int categoryId = Integer.parseInt(vars.get("simple_product_category_id"));
                        categoryList = props.get("admin_category_ids_list");

                        if (categoryList.size() &gt; 1) {
	                        do {
	                            int index = randomGenerator.nextInt(categoryList.size());
	                            newCategoryId = Integer.parseInt(categoryList.get(index));
	                        } while (categoryId == newCategoryId);

                            vars.put("category_additional", newCategoryId.toString());
                        }

                        //New price
                        vars.put("price_new", "9999");
                        //New special price
                        vars.put("special_price_new", "8888");
                        //New quantity
                        vars.put("quantity_new", "100600");
                  </stringProp>
                  <stringProp name="BeanShellSampler.filename"/>
                  <stringProp name="BeanShellSampler.parameters"/>
                  <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
                </BeanShellSampler>
                <hashTree/>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Simple Product Validate" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="ajax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">ajax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1.0000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Full simple product Description ${simple_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variations]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[small_image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[small_image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[thumbnail]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[thumbnail]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">10000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/id/${simple_product_id}/?isAjax=true</stringProp>
                  <stringProp name="HTTPSampler.method">POST</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1853918323">{"error":false}</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Simple Product Save" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="ajax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">ajax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1.0000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${category_additional}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Full simple product Description ${simple_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variations]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[small_image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[small_image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[thumbnail]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[thumbnail]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">10000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/id/${simple_product_id}/back/edit/active_tab/product-details/</stringProp>
                  <stringProp name="HTTPSampler.method">POST</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="-583471546">You saved the product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Configurable Product" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments"/>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/edit/id/${configurable_product_id}/</stringProp>
                  <stringProp name="HTTPSampler.method">GET</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1355179215">Product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">16</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract name" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_name</stringProp>
                    <stringProp name="RegexExtractor.regex">,"name":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract sku" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_sku</stringProp>
                    <stringProp name="RegexExtractor.regex">,"sku":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_category_id</stringProp>
                    <stringProp name="RegexExtractor.regex">,"category_ids":."(\d+)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract configurable attribute id" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_id</stringProp>
                    <stringProp name="RegexExtractor.regex">,"configurable_variation":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                    <boolProp name="RegexExtractor.default_empty_value">true</boolProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract configurable matrix" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_matrix</stringProp>
                    <stringProp name="RegexExtractor.regex">"configurable-matrix":(\[.*?\])</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                    <boolProp name="RegexExtractor.default_empty_value">true</boolProp>
                  </RegexExtractor>
                  <hashTree/>
                  <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract associated products ids" enabled="true">
                    <stringProp name="VAR">associated_products_ids</stringProp>
                    <stringProp name="JSONPATH">$.[*].id</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE">configurable_matrix</stringProp>
                    <stringProp name="SUBJECT">VAR</stringProp>
                  </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract configurable product json" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_data</stringProp>
                    <stringProp name="RegexExtractor.regex">(\{"product":.*?configurable_attributes_data.*?\})\s*&lt;</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract configurable attributes data" enabled="true">
                    <stringProp name="VAR">configurable_attributes_data</stringProp>
                    <stringProp name="JSONPATH">$.product.configurable_attributes_data</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE">configurable_product_data</stringProp>
                    <stringProp name="SUBJECT">VAR</stringProp>
                  </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute ids" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_ids</stringProp>
                    <stringProp name="RegexExtractor.regex">"attribute_id":"(\d+)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute codes" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_codes</stringProp>
                    <stringProp name="RegexExtractor.regex">"code":"(\w+)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute labels" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_labels</stringProp>
                    <stringProp name="RegexExtractor.regex">"label":"(.*?)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute values" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_values</stringProp>
                    <stringProp name="RegexExtractor.regex">"values":(\{(?:\}|.*?\}\}))</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                </hashTree>
                <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach configurable attribute id" enabled="true">
                  <stringProp name="ForeachController.inputVal">configurable_attribute_ids</stringProp>
                  <stringProp name="ForeachController.returnVal">configurable_attribute_id</stringProp>
                  <boolProp name="ForeachController.useSeparator">true</boolProp>
                </ForeachController>
                <hashTree>
                  <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
                    <stringProp name="CounterConfig.start">1</stringProp>
                    <stringProp name="CounterConfig.end">${configurable_attribute_ids_matchNr}</stringProp>
                    <stringProp name="CounterConfig.incr">1</stringProp>
                    <stringProp name="CounterConfig.name">attribute_counter</stringProp>
                    <stringProp name="CounterConfig.format"/>
                    <boolProp name="CounterConfig.per_user">true</boolProp>
                    <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
                  </CounterConfig>
                  <hashTree/>
                  <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Process configurable attribute values" enabled="true">
                    <stringProp name="BeanShellSampler.query">return vars.get("configurable_attribute_values_" + vars.get("attribute_counter"));</stringProp>
                    <stringProp name="BeanShellSampler.filename"/>
                    <stringProp name="BeanShellSampler.parameters"/>
                    <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
                  </BeanShellSampler>
                  <hashTree>
                    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Exctract attribute values" enabled="true">
                      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                      <stringProp name="RegexExtractor.refname">attribute_${configurable_attribute_id}_values</stringProp>
                      <stringProp name="RegexExtractor.regex">"value_index":"(\d+)"</stringProp>
                      <stringProp name="RegexExtractor.template">$1$</stringProp>
                      <stringProp name="RegexExtractor.default"/>
                      <stringProp name="RegexExtractor.match_number">-1</stringProp>
                      <stringProp name="Scope.variable">configurable_attribute_values_${attribute_counter}</stringProp>
                    </RegexExtractor>
                    <hashTree/>
                  </hashTree>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Configurable Product Validate" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">3</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${category_additional}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Configurable product description ${configurable_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_attribute_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variation]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[visibility]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">4</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[visibility]</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">true</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">50</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][type_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">configurable</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][type_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/id/${configurable_product_id}/</stringProp>
                  <stringProp name="HTTPSampler.method">POST</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Configure product options" enabled="true">
                    <boolProp name="resetInterpreter">false</boolProp>
                    <stringProp name="parameters"/>
                    <stringProp name="filename"/>
                    <stringProp name="script">try {
    	int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr"));
    	for (int i = 1; i &lt;= attributesCount; i++) {
    		attributeId = vars.get("configurable_attribute_ids_" + i.toString());
    		attributeCode = vars.get("configurable_attribute_codes_" + i.toString());
    		attributeLabel = vars.get("configurable_attribute_labels_" + i.toString());
    		ctx.getCurrentSampler().addArgument("attributes[" + (i - 1).toString() + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("attribute_codes[" + (i - 1).toString() + "]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[" + attributeCode + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][position]", (i - 1).toString());
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attributeLabel);

    		int valuesCount = Integer.parseInt(vars.get("attribute_" + attributeId + "_values_matchNr"));
    		for (int j = 1; j &lt;= valuesCount; j++) {
    			attributeValue = vars.get("attribute_" + attributeId + "_values_" + j.toString());
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][include]",
    				"1"
    			);
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][value_index]",
    				attributeValue
    			);
    		}
    	}
    	ctx.getCurrentSampler().addArgument("associated_product_ids_serialized", vars.get("associated_products_ids").toString());
    } catch (Exception e) {
        log.error("error???", e);
    }</stringProp>
                  </BeanShellPreProcessor>
                  <hashTree/>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1853918323">{"error":false}</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Configurable Product Save" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="ajax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">ajax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]admin" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]admin</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">3</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${category_additional}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Configurable product description ${configurable_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_attribute_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variation]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[visibility]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">4</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[visibility]</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">true</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">50</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][type_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">configurable</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][type_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/id/${configurable_product_id}/back/edit/active_tab/product-details/</stringProp>
                  <stringProp name="HTTPSampler.method">POST</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Configure product options" enabled="true">
                    <boolProp name="resetInterpreter">false</boolProp>
                    <stringProp name="parameters"/>
                    <stringProp name="filename"/>
                    <stringProp name="script">try {
    	int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr"));
    	for (int i = 1; i &lt;= attributesCount; i++) {
    		attributeId = vars.get("configurable_attribute_ids_" + i.toString());
    		attributeCode = vars.get("configurable_attribute_codes_" + i.toString());
    		attributeLabel = vars.get("configurable_attribute_labels_" + i.toString());
    		ctx.getCurrentSampler().addArgument("attributes[" + (i - 1).toString() + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("attribute_codes[" + (i - 1).toString() + "]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[" + attributeCode + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][position]", (i - 1).toString());
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attributeLabel);

    		int valuesCount = Integer.parseInt(vars.get("attribute_" + attributeId + "_values_matchNr"));
    		for (int j = 1; j &lt;= valuesCount; j++) {
    			attributeValue = vars.get("attribute_" + attributeId + "_values_" + j.toString());
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][include]",
    				"1"
    			);
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][value_index]",
    				attributeValue
    			);
    		}
    	}
    	ctx.getCurrentSampler().addArgument("associated_product_ids_serialized", vars.get("associated_products_ids").toString());
    } catch (Exception e) {
        log.error("error???", e);
    }</stringProp>
                  </BeanShellPreProcessor>
                  <hashTree/>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="-583471546">You saved the product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                    <stringProp name="TestPlan.comments"> if have trouble see messages-message-error </stringProp>
                  </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Admin Returns Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminReturnsManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Admin Returns Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Orders page" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/orders_page.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1204796042">Create New Order</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">desc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
        </elementProp>
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/open_orders.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1637639774">totalRecords</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Pending Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
        </elementProp>
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">asc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/search_orders.jmx</stringProp></HTTPSamplerProxy>
<hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">totalRecords</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order numbers" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_numbers</stringProp>
        <stringProp name="RegexExtractor.regex">\"increment_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order ids" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_ids</stringProp>
        <stringProp name="RegexExtractor.regex">\"entity_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>

      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Generate Unique Ids for each Thread" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
  import java.util.ArrayList;
  import java.util.HashMap;
  import org.apache.jmeter.protocol.http.util.Base64Encoder;
  import java.util.Random;

  // get count of "order_numbers" variable defined in "Search Pending Orders Limit"
  int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr"));


  int clusterLength;
  int threadsNumber = ctx.getThreadGroup().getNumThreads();
  if (threadsNumber == 0) {
      //Number of orders for one thread
      clusterLength = ordersCount;
  } else {
      clusterLength = Math.round(ordersCount / threadsNumber);
      if (clusterLength == 0) {
          clusterLength = 1;
      }
  }

  //Current thread number starts from 0
  int currentThreadNum = ctx.getThreadNum();

  //Index of the current product from the cluster
  Random random = new Random();
  if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
  }
  int iterator = random.nextInt(clusterLength);
  if (iterator == 0) {
  	iterator = 1;
  }

  int i = clusterLength * currentThreadNum + iterator;

  orderNumber = vars.get("order_numbers_" + i.toString());
  orderId = vars.get("order_ids_" + i.toString());
  vars.put("order_number", orderNumber);
  vars.put("order_id", orderId);

  </stringProp>
    <stringProp name="BeanShellSampler.filename"/>
    <stringProp name="BeanShellSampler.parameters"/>
    <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
  </BeanShellSampler>
  <hashTree/>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Order" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/view/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/open_order.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="2103620713">#${order_number}</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order status" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">order_status</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;span id="order_status"&gt;([^&lt;]+)&lt;/span&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
      <stringProp name="IfController.condition">"${order_status}" == "Pending"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/if_controller.jmx</stringProp></IfController>
    <hashTree>
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Start" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/invoice_start.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="-1233850814">Invoice Totals</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract ordered items ids" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">item_ids</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;div id="order_item_(\d+)_title"\s*class="product-title"&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">-1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Submit" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_1}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_1}]</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_2}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_2}]</stringProp>
        </elementProp>
        <elementProp name="invoice[comment_text]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">Invoiced</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[comment_text]</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">POST</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1740524604">The invoice has been created</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Credit Memo Start" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_creditmemo/start/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/credit_memo_start.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1382627322">New Memo</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Credit Memo Submit - Full Refund" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="creditmemo[items][${item_ids_1}][qty]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[items][${item_ids_1}][qty]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[items][${item_ids_2}][qty]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[items][${item_ids_2}][qty]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[do_offline]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[do_offline]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[comment_text]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">Credit Memo added</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[comment_text]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[shipping_amount]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">10</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[shipping_amount]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[adjustment_positive]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">0</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[adjustment_positive]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[adjustment_negative]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">0</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[adjustment_negative]</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_creditmemo/save/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">POST</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/credit_memo_full_refund.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-515117447">You created the credit memo</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
    <hashTree/>
  </hashTree>

    <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Create/Process Returns - Pause" enabled="true">
      <intProp name="ActionProcessor.action">1</intProp>
      <intProp name="ActionProcessor.target">0</intProp>
      <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCreateProcessReturnsDelay}*1000))}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/pause.jmx</stringProp></TestAction>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Admin Browse Customer Grid" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminBrowseCustomerGridPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Admin Browse Customer Grid");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="script">
        vars.put("gridEntityType" , "Customer");

        pagesCount = parseInt(vars.get("customers_page_size")) || 20;
        vars.put("grid_entity_page_size" , pagesCount);
        vars.put("grid_namespace" , "customer_listing");
        vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_customer_filter_text"));
        vars.put("grid_filter_field", "name");

        // set sort fields and sort directions
        vars.put("grid_sort_field_1", "name");
        vars.put("grid_sort_field_2", "group_id");
        vars.put("grid_sort_field_3", "billing_country_id");
        vars.put("grid_sort_order_1", "asc");
        vars.put("grid_sort_order_2", "desc");
      </stringProp>
      <stringProp name="scriptLanguage">javascript</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_browse_customers_grid/setup.jmx</stringProp></JSR223PostProcessor>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} pages count" enabled="true">
        <stringProp name="cacheKey"/>
        <stringProp name="filename"/>
        <stringProp name="parameters"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
          var totalsRecord = parseInt(vars.get("entity_total_records"));
          var pageCount = Math.round(totalsRecord/pageSize);

          vars.put("grid_pages_count", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Filtered Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} filtered pages count" enabled="true">
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
var totalsRecord = parseInt(vars.get("entity_total_records"));
var pageCount = Math.round(totalsRecord/pageSize);

vars.put("grid_pages_count_filtered", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${page_number}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select Filtered ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count_filtered}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="View ${gridEntityType} page - Filtering + Sorting" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Field Defined" enabled="true">
        <stringProp name="ForeachController.inputVal">grid_sort_field</stringProp>
        <stringProp name="ForeachController.returnVal">grid_sort_field</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
        <stringProp name="ForeachController.startIndex">0</stringProp>
        <stringProp name="ForeachController.endIndex">3</stringProp>
      </ForeachController>
      <hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Order Defined" enabled="true">
          <stringProp name="ForeachController.inputVal">grid_sort_order</stringProp>
          <stringProp name="ForeachController.returnVal">grid_sort_order</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
          <stringProp name="ForeachController.startIndex">0</stringProp>
          <stringProp name="ForeachController.endIndex">2</stringProp>
        </ForeachController>
        <hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page - Filtering + Sort By ${grid_sort_field} ${grid_sort_order}" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
              <collectionProp name="Arguments.arguments">
                <elementProp name="namespace" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_namespace}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">namespace</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[${grid_filter_field}]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[${grid_filter_field}]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[placeholder]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[placeholder]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[pageSize]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[pageSize]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[current]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${page_number}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[current]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[field]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_field}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[field]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[direction]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_order}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[direction]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="isAjax" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">isAjax</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
          </HTTPSamplerProxy>
          <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
              </collectionProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Admin Create Order" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminCreateOrderPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Admin Create Order");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Get region data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">
      vars.put("alabama_region_id", props.get("alabama_region_id"));
      vars.put("california_region_id", props.get("california_region_id"));
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_region_data.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Order" enabled="true"/>
    <hashTree>
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_order/admin_create_order.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();

if (${seedForRandom} &gt; 0) {
  random.setSeed(${seedForRandom});
}

number = random.nextInt(props.get("configurable_products_list").size());
configurableList = props.get("configurable_products_list").get(number);
vars.put("configurable_product_1_url_key", configurableList.get("url_key"));
vars.put("configurable_product_1_name", configurableList.get("title"));
vars.put("configurable_product_1_id", configurableList.get("id"));
vars.put("configurable_product_1_sku", configurableList.get("sku"));
vars.put("configurable_attribute_id", configurableList.get("attribute_id"));
vars.put("configurable_option_id", configurableList.get("attribute_option_id"));

number = random.nextInt(props.get("simple_products_list").size());
simpleList = props.get("simple_products_list").get(number);
vars.put("simple_product_1_url_key", simpleList.get("url_key"));
vars.put("simple_product_1_name", simpleList.get("title"));
vars.put("simple_product_1_id", simpleList.get("id"));

number1 = random.nextInt(props.get("configurable_products_list").size());
do {
    number1 = random.nextInt(props.get("simple_products_list").size());
} while(number == number1);
simpleList = props.get("simple_products_list").get(number1);
vars.put("simple_product_2_url_key", simpleList.get("url_key"));
vars.put("simple_product_2_name", simpleList.get("title"));
vars.put("simple_product_2_id", simpleList.get("id"));


customers_index = 0;
if (!props.containsKey("customer_ids_index")) {
	props.put("customer_ids_index", customers_index);
}

try {
	customers_index = props.get("customer_ids_index");
	customers_list = props.get("customer_ids_list");

	if (customers_index == customers_list.size()) {
		customers_index=0;
	}
	vars.put("customer_id", customers_list.get(customers_index));
	props.put("customer_ids_index", ++customers_index);
}
catch (java.lang.Exception e) {
	   log.error("Caught Exception in 'Admin Create Order' thread.");
	   SampleResult.setStopThread(true);
}</stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Start Order" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/start/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree/>
      <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="SetUp - Get Configurable Product Options" enabled="true"/>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">Content-Type</stringProp>
              <stringProp name="Header.value">application/json</stringProp>
            </elementProp>
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">*/*</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
            <collectionProp name="Arguments.arguments">
              <elementProp name="" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
          <stringProp name="HTTPSampler.method">POST</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
            <stringProp name="VAR">admin_token</stringProp>
            <stringProp name="JSONPATH">$</stringProp>
            <stringProp name="DEFAULT"/>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="484395188">^.{10,}$</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">1</intProp>
            <stringProp name="Assertion.scope">variable</stringProp>
            <stringProp name="Scope.variable">admin_token</stringProp>
          </ResponseAssertion>
          <hashTree/>
        </hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">Authorization</stringProp>
              <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get Configurable Product Options" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments"/>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${configurable_product_1_sku}/options/all</stringProp>
          <stringProp name="HTTPSampler.method">GET</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
            <stringProp name="VAR">attribute_ids</stringProp>
            <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
            <stringProp name="DEFAULT">NO_VALUE</stringProp>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
            <stringProp name="VAR">option_values</stringProp>
            <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
            <stringProp name="DEFAULT">NO_VALUE</stringProp>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
        </hashTree>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Products" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="item[${simple_product_1_id}][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">item[${simple_product_1_id}][qty]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="item[${simple_product_2_id}][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">item[${simple_product_2_id}][qty]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="item[${configurable_product_1_id}][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">item[${configurable_product_1_id}][qty]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="customer_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">customer_id</stringProp>
              <stringProp name="Argument.value">${customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="store_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">store_id</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="currency_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">currency_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="payment[method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">payment[method]</stringProp>
              <stringProp name="Argument.value">checkmo</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="reset_shipping" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">reset_shipping</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="json" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">json</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="as_js_varname" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">as_js_varname</stringProp>
              <stringProp name="Argument.value">iFrameResponse</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/loadBlock/block/search,items,shipping_method,totals,giftmessage,billing_method?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Configure product options" enabled="true">
          <boolProp name="resetInterpreter">false</boolProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="script">try {
	attribute_ids = vars.get("attribute_ids");
	option_values = vars.get("option_values");
	attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
	option_values = option_values.replace("[","").replace("]","").replace("\"", "");
	attribute_ids_array = attribute_ids.split(",");
	option_values_array = option_values.split(",");
	args = ctx.getCurrentSampler().getArguments();
	it = args.iterator();
	while (it.hasNext()) {
	    argument = it.next();
	    if (argument.getStringValue().contains("${")) {
	        args.removeArgument(argument.getName());
	    }
	}
	for (int i = 0; i &lt; attribute_ids_array.length; i++) {

    ctx.getCurrentSampler().addArgument("item[" + vars.get("configurable_product_1_id") + "][super_attribute][" + attribute_ids_array[i] + "]", option_values_array[i]);
	}
} catch (Exception e) {
    log.error("error???", e);
}</stringProp>
        </BeanShellPreProcessor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Collect Shipping Rates" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="collect_shipping_rates" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">collect_shipping_rates</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="customer_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">customer_id</stringProp>
              <stringProp name="Argument.value">${customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="store_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">store_id</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="currency_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">currency_id</stringProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="payment[method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">payment[method]</stringProp>
              <stringProp name="Argument.value">checkmo</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="json" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">json</stringProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/loadBlock/block/shipping_method,totals?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Shipping Method" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1987784558">shipping_method</stringProp>
            <stringProp name="818779431">Flat Rate</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Filled Order Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/index/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Filled Order Page" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-37823069">Select from existing customer addresses</stringProp>
            <stringProp name="-13185722">Submit Order</stringProp>
            <stringProp name="-209419315">Items Ordered</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save Order" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="limit" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">limit</stringProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="entity_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">entity_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="email" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">email</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="Telephone" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">Telephone</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="billing_postcode" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">billing_postcode</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="billing_country_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">billing_country_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="billing_regione" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">billing_regione</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="store_name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">store_name</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="page" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">page</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[currency]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[currency]</stringProp>
              <stringProp name="Argument.value">USD</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="sku" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">sku</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="qty" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">qty</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="limit" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">limit</stringProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="entity_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">entity_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="sku" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">sku</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="price[from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">price[from]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="price[to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">price[to]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="in_products" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">in_products</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="page" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">page</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="coupon_code" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">coupon_code</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[account][group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[account][group_id]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[account][email]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[account][email]</stringProp>
              <stringProp name="Argument.value">user_${customer_id}@example.com</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][customer_address_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][customer_address_id]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][prefix]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][firstname]</stringProp>
              <stringProp name="Argument.value">Anthony</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][middlename]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][lastname]</stringProp>
              <stringProp name="Argument.value">Nealy</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][suffix]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][company]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][street][0]</stringProp>
              <stringProp name="Argument.value">123 Freedom Blvd. #123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][street][1]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][city]</stringProp>
              <stringProp name="Argument.value">Fayetteville</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][country_id]</stringProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][region]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][region_id]</stringProp>
              <stringProp name="Argument.value">${alabama_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][postcode]</stringProp>
              <stringProp name="Argument.value">123123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][telephone]</stringProp>
              <stringProp name="Argument.value">022-333-4455</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][fax]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][fax]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][vat_id]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipping_same_as_billing" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipping_same_as_billing</stringProp>
              <stringProp name="Argument.value">on</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="payment[method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">payment[method]</stringProp>
              <stringProp name="Argument.value">checkmo</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[shipping_method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[shipping_method]</stringProp>
              <stringProp name="Argument.value">flatrate_flatrate</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[comment][customer_note]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[comment][customer_note]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[comment][customer_note_notify]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[comment][customer_note_notify]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[send_confirmation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[send_confirmation]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_id</stringProp>
          <stringProp name="RegexExtractor.regex">${host}${base_path}${admin_path}/sales/order/index/order_id/(\d+)/</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Item 1" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_item_1</stringProp>
          <stringProp name="RegexExtractor.regex">order_item_(\d+)_title</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Item 2" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_item_2</stringProp>
          <stringProp name="RegexExtractor.regex">order_item_(\d+)_title</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">2</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Item 3" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_item_3</stringProp>
          <stringProp name="RegexExtractor.regex">order_item_(\d+)_title</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">3</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Item 1" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_item_1</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Item 2" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_item_2</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Item 3" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_item_3</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Created" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="563107624">You created the order.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save Invoice" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[items][${order_item_1}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[items][${order_item_1}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[items][${order_item_2}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[items][${order_item_2}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[items][${order_item_3}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[items][${order_item_3}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[comment_text]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[comment_text]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Invoice Created" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1878312078">The invoice has been created.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save Shipment" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[items][${order_item_1}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[items][${order_item_1}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[items][${order_item_2}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[items][${order_item_2}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[items][${order_item_3}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[items][${order_item_3}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[comment_text]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[comment_text]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Shipment Created" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-348539683">The shipment has been created.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Admin Category Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminCategoryManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Admin Category Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Category Management" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_category_management/admin_category_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
         <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = new java.util.Random();
if (${seedForRandom} &gt; 0) {
random.setSeed(${seedForRandom} + ${__threadNum});
}

/**
 * Get unique ids for fix concurrent category saving
 */
function getNextProductNumber(i) {
    number = productsVariationsSize * ${__threadNum} - i;
    if (number &gt;= productsSize) {
        log.info("${testLabel}: capacity of product list is not enough for support all ${adminPoolUsers} threads");
        return random.nextInt(productsSize);
    }
    return productsVariationsSize * ${__threadNum} - i;
}

var productsVariationsSize = 5,
    productsSize = props.get("simple_products_list_for_edit").size();


for (i = 1; i&lt;= productsVariationsSize; i++) {
    var productVariablePrefix = "simple_product_" + i + "_";
    number = getNextProductNumber(i);
    simpleList = props.get("simple_products_list_for_edit").get(number);

    vars.put(productVariablePrefix + "url_key", simpleList.get("url_key"));
    vars.put(productVariablePrefix + "id", simpleList.get("id"));
    vars.put(productVariablePrefix + "name", simpleList.get("title"));
}

categoryIndex = random.nextInt(props.get("admin_category_ids_list").size());
vars.put("parent_category_id", props.get("admin_category_ids_list").get(categoryIndex));
do {
categoryIndexNew = random.nextInt(props.get("admin_category_ids_list").size());
} while(categoryIndex == categoryIndexNew);
vars.put("new_parent_category_id", props.get("admin_category_ids_list").get(categoryIndexNew));</stringProp>
    </JSR223Sampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
          <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Select parent category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/edit/id/${parent_category_id}/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open new category page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/add/store/0/parent/${parent_category_id}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1903925024">&lt;title&gt;New Category</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">id</stringProp>
            </elementProp>
            <elementProp name="parent" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${parent_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">parent</stringProp>
            </elementProp>
            <elementProp name="path" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">path</stringProp>
            </elementProp>
            <elementProp name="store_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_id</stringProp>
            </elementProp>
            <elementProp name="is_active" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_active</stringProp>
            </elementProp>
            <elementProp name="include_in_menu" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">include_in_menu</stringProp>
            </elementProp>
            <elementProp name="is_anchor" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_anchor</stringProp>
            </elementProp>
            <elementProp name="use_config[available_sort_by]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_config[available_sort_by]</stringProp>
            </elementProp>
            <elementProp name="use_config[default_sort_by]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_config[default_sort_by]</stringProp>
            </elementProp>
            <elementProp name="use_config[filter_price_range]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_config[filter_price_range]</stringProp>
            </elementProp>
            <elementProp name="use_default[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_default[url_key]</stringProp>
            </elementProp>
            <elementProp name="url_key_create_redirect" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">url_key_create_redirect</stringProp>
            </elementProp>
            <elementProp name="custom_use_parent_settings" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">custom_use_parent_settings</stringProp>
            </elementProp>
            <elementProp name="custom_apply_to_products" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">custom_apply_to_products</stringProp>
            </elementProp>
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Admin Category Management ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
            </elementProp>
            <elementProp name="url_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">admin-category-management-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">url_key</stringProp>
            </elementProp>
            <elementProp name="meta_title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_title</stringProp>
            </elementProp>
            <elementProp name="description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">description</stringProp>
            </elementProp>
            <elementProp name="display_mode" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">PRODUCTS</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">display_mode</stringProp>
            </elementProp>
            <elementProp name="default_sort_by" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">position</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">default_sort_by</stringProp>
            </elementProp>
            <elementProp name="meta_keywords" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_keywords</stringProp>
            </elementProp>
            <elementProp name="meta_description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_description</stringProp>
            </elementProp>
            <elementProp name="custom_layout_update" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">custom_layout_update</stringProp>
            </elementProp>
            <elementProp name="category_products" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"${simple_product_1_id}":"","${simple_product_2_id}":"","${simple_product_3_id}":"","${simple_product_4_id}":"","${simple_product_5_id}":""}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">category_products</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">URL</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_id</stringProp>
          <stringProp name="RegexExtractor.regex">/catalog/category/edit/id/(\d+)/</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Select created category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/edit/id/${admin_category_id}/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category row id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_entity_id</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category attribute set id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_attribute_set_id</stringProp>
          <stringProp name="RegexExtractor.regex">"attribute_set_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category parent Id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_parent_id</stringProp>
          <stringProp name="RegexExtractor.regex">"parent_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category created at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_created_at</stringProp>
          <stringProp name="RegexExtractor.regex">"created_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category updated at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_updated_at</stringProp>
          <stringProp name="RegexExtractor.regex">"updated_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category path" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_path</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":(.+)"path":"([^\"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category level" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_level</stringProp>
          <stringProp name="RegexExtractor.regex">"level":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category name" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_name</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":(.+)"name":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category url key" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_url_key</stringProp>
          <stringProp name="RegexExtractor.regex">"url_key":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category url path" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_url_path</stringProp>
          <stringProp name="RegexExtractor.regex">"url_path":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category row id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_entity_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category attribute set id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_attribute_set_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category parent id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_parent_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category created at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_created_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category updated at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_updated_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category path" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="59022110">^[\d\\\/]+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_path</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category level" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_level</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category name" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_name</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category url key" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_url_key</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category url path" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_url_path</stringProp>
        </ResponseAssertion>
        <hashTree/>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert products added" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="417284990">${simple_product_1_name}</stringProp>
              <stringProp name="1304788671">${simple_product_2_name}</stringProp>
              <stringProp name="-2102674944">${simple_product_3_name}</stringProp>
              <stringProp name="-1215171263">${simple_product_4_name}</stringProp>
              <stringProp name="-327667582">${simple_product_5_name}</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">2</intProp>
          </ResponseAssertion>
          <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Move category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">id</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
            <elementProp name="point" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">append</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">point</stringProp>
            </elementProp>
            <elementProp name="pid" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${new_parent_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">pid</stringProp>
            </elementProp>
            <elementProp name="paid" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${parent_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paid</stringProp>
            </elementProp>
            <elementProp name="aid" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">aid</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/move/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Delete category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/delete/id/${admin_category_id}/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category deleted" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1277069529">You deleted the category.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCategoryManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Admin Promotion Rules" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminPromotionRulesPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Admin Promotion Rules");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Promotions Management" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_promotions_management/admin_promotions_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/new</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New Conditional" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1--1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">id</stringProp>
            </elementProp>
            <elementProp name="type" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Address|base_subtotal</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">type</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/newConditionHtml/form/sales_rule_formrule_conditions_fieldset_/form_namespace/sales_rule_form</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Rule Name ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
            </elementProp>
            <elementProp name="is_active" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_active</stringProp>
            </elementProp>
            <elementProp name="use_auto_generation" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_auto_generation</stringProp>
            </elementProp>
            <elementProp name="is_rss" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_rss</stringProp>
            </elementProp>
            <elementProp name="apply_to_shipping" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">apply_to_shipping</stringProp>
            </elementProp>
            <elementProp name="stop_rules_processing" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">stop_rules_processing</stringProp>
            </elementProp>
            <elementProp name="coupon_code" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">coupon_code</stringProp>
            </elementProp>
            <elementProp name="uses_per_coupon" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">uses_per_coupon</stringProp>
            </elementProp>
            <elementProp name="uses_per_customer" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">uses_per_customer</stringProp>
            </elementProp>
            <elementProp name="sort_order" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sort_order</stringProp>
            </elementProp>
            <elementProp name="discount_amount" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">discount_amount</stringProp>
            </elementProp>
            <elementProp name="discount_qty" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">discount_qty</stringProp>
            </elementProp>
            <elementProp name="discount_step" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">discount_step</stringProp>
            </elementProp>
            <elementProp name="reward_points_delta" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">reward_points_delta</stringProp>
            </elementProp>
            <elementProp name="store_labels[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_labels[0]</stringProp>
            </elementProp>
            <elementProp name="description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Rule Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">description</stringProp>
            </elementProp>
            <elementProp name="coupon_type" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">coupon_type</stringProp>
            </elementProp>
            <elementProp name="simple_action" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">cart_fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">simple_action</stringProp>
            </elementProp>
            <elementProp name="website_ids[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">website_ids[0]</stringProp>
            </elementProp>
            <elementProp name="customer_group_ids[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer_group_ids[0]</stringProp>
            </elementProp>
            <elementProp name="from_date" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">from_date</stringProp>
            </elementProp>
            <elementProp name="to_date" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">to_date</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Combine</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][type]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][aggregator]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">all</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][aggregator]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][value]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Address</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][type]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][attribute]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">base_subtotal</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][attribute]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][operator]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&gt;=</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][operator]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][value]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][new_chlid]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][new_chlid]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Product\Combine</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][type]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][aggregator]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">all</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][aggregator]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][value]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][new_child]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][new_child]</stringProp>
            </elementProp>
            <elementProp name="store_labels[1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_labels[1]</stringProp>
            </elementProp>
            <elementProp name="store_labels[2]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_labels[2]</stringProp>
            </elementProp>
            <elementProp name="related_banners" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">related_banners</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-396438583">You saved the rule.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminPromotionsManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Admin Customer Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminCustomerManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Admin Customer Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Customer Management" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_customer_management/admin_customer_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/customer/index</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Render" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="namespace" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">customer_listing</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">namespace</stringProp>
            </elementProp>
            <elementProp name="search" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">search</stringProp>
            </elementProp>
            <elementProp name="filters[placeholder]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">filters[placeholder]</stringProp>
            </elementProp>
            <elementProp name="paging[pageSize]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[pageSize]</stringProp>
            </elementProp>
            <elementProp name="paging[current]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[current]</stringProp>
            </elementProp>
            <elementProp name="sorting[field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">entity_id</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[field]</stringProp>
            </elementProp>
            <elementProp name="sorting[direction]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">asc</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[direction]</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">X-Requested-With</stringProp>
              <stringProp name="Header.value">XMLHttpRequest</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Render" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="namespace" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">customer_listing</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">namespace</stringProp>
            </elementProp>
            <elementProp name="search" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Lastname</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">search</stringProp>
            </elementProp>
            <elementProp name="filters[placeholder]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">filters[placeholder]</stringProp>
            </elementProp>
            <elementProp name="paging[pageSize]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[pageSize]</stringProp>
            </elementProp>
            <elementProp name="paging[current]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[current]</stringProp>
            </elementProp>
            <elementProp name="sorting[field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">entity_id</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[field]</stringProp>
            </elementProp>
            <elementProp name="sorting[direction]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">asc</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[direction]</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">X-Requested-With</stringProp>
              <stringProp name="Header.value">XMLHttpRequest</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer edit url" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">customer_edit_url_path</stringProp>
          <stringProp name="RegexExtractor.regex">actions":\{"edit":\{"href":"(?:http|https):\\/\\/(.*?)\\/customer\\/index\\/edit\\/id\\/(\d+)\\/",</stringProp>
          <stringProp name="RegexExtractor.template">/customer/index/edit/id/$2$/</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer edit url" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">customer_edit_url_path</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Customer" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}${customer_edit_url_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert edit customer page" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1422614550">Customer Information</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer entity_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_entity_id</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract website_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_website_id</stringProp>
          <stringProp name="RegexExtractor.regex">"website_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer firstname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_firstname</stringProp>
          <stringProp name="RegexExtractor.regex">"firstname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer lastname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_lastname</stringProp>
          <stringProp name="RegexExtractor.regex">"lastname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer email" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_email</stringProp>
          <stringProp name="RegexExtractor.regex">"email":"([^\@]+@[^.]+.[^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract group_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_group_id</stringProp>
          <stringProp name="RegexExtractor.regex">"group_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract store_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_store_id</stringProp>
          <stringProp name="RegexExtractor.regex">"store_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extact created_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_created_at</stringProp>
          <stringProp name="RegexExtractor.regex">"created_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract updated_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_updated_at</stringProp>
          <stringProp name="RegexExtractor.regex">"updated_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract is_active" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_is_active</stringProp>
          <stringProp name="RegexExtractor.regex">"is_active":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract disable_auto_group_change" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_disable_auto_group_change</stringProp>
          <stringProp name="RegexExtractor.regex">"disable_auto_group_change":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract created_in" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_created_in</stringProp>
          <stringProp name="RegexExtractor.regex">"created_in":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract dob" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_dob</stringProp>
          <stringProp name="RegexExtractor.regex">"dob":"(\d+)-(\d+)-(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$/$3$/$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract default_billing" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_default_billing</stringProp>
          <stringProp name="RegexExtractor.regex">"default_billing":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract default_shipping" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_default_shipping</stringProp>
          <stringProp name="RegexExtractor.regex">"default_shipping":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract gender" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_gender</stringProp>
          <stringProp name="RegexExtractor.regex">"gender":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract failures_num" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_failures_num</stringProp>
          <stringProp name="RegexExtractor.regex">"failures_num":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_entity_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_entity_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{"entity_id":"(\d+)".+?"parent_id":"${admin_customer_entity_id}"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
       <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_created_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_created_at</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"created_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_updated_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_updated_at</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"updated_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_is_active" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_is_active</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"is_active":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_city" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_city</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"city":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_country_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_country_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"country_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_firstname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_firstname</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"firstname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_lastname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_lastname</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"lastname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_postcode" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_postcode</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"postcode":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_region" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_region</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"region":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_region_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_region_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"region_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address street" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_street</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"street":\["([^"]+)"\]</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_telephone" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_telephone</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"telephone":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_customer_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_customer_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"customer_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer entity_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_entity_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert website_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_website_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer firstname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_firstname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer lastname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_lastname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer email" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_email</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer group_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_group_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer store_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_store_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer created_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_created_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer updated_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_updated_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer is_active" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_is_active</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer disable_auto_group_change" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_disable_auto_group_change</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer created_in" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_created_in</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer dob" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="221072919">^\d+/\d+/\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_dob</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer default_billing" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_default_billing</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer default_shipping" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_default_shipping</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer gender" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_gender</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer failures_num" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_failures_num</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_entity_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_entity_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_created_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_created_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_updated_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_updated_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_is_active" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_is_active</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_city" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_city</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_country_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_country_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_firstname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_firstname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_lastname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_lastname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_postcode" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_postcode</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_region" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_region</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_region_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_region_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_street" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_street</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_telephone" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_telephone</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_customer_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_customer_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Customer Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="isAjax   " elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax   </stringProp>
            </elementProp>
            <elementProp name="customer[entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[entity_id]</stringProp>
            </elementProp>
            <elementProp name="customer[website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_website_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[website_id]</stringProp>
            </elementProp>
            <elementProp name="customer[email]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_email}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[email]</stringProp>
            </elementProp>
            <elementProp name="customer[group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_group_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[group_id]</stringProp>
            </elementProp>
            <elementProp name="customer[store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[store_id]</stringProp>
            </elementProp>
            <elementProp name="customer[created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_at]</stringProp>
            </elementProp>
            <elementProp name="customer[updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[updated_at]</stringProp>
            </elementProp>
            <elementProp name="customer[is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[is_active]</stringProp>
            </elementProp>
            <elementProp name="customer[disable_auto_group_change]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_disable_auto_group_change}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[disable_auto_group_change]</stringProp>
            </elementProp>
            <elementProp name="customer[created_in]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_in}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_in]</stringProp>
            </elementProp>
            <elementProp name="customer[prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[prefix]</stringProp>
            </elementProp>
            <elementProp name="customer[firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_firstname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[firstname]</stringProp>
            </elementProp>
            <elementProp name="customer[middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[middlename]</stringProp>
            </elementProp>
            <elementProp name="customer[lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_lastname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[lastname]</stringProp>
            </elementProp>
            <elementProp name="customer[suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[suffix]</stringProp>
            </elementProp>
            <elementProp name="customer[dob]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_dob}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[dob]</stringProp>
            </elementProp>
            <elementProp name="customer[default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_billing}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_billing]</stringProp>
            </elementProp>
            <elementProp name="customer[default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_shipping}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_shipping]</stringProp>
            </elementProp>
            <elementProp name="customer[taxvat]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[taxvat]</stringProp>
            </elementProp>
            <elementProp name="customer[gender]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_gender}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[gender]</stringProp>
            </elementProp>
            <elementProp name="customer[failures_num]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_failures_num}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[failures_num]</stringProp>
            </elementProp>
            <elementProp name="customer[sendemail_store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[sendemail_store_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][entity_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][created_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][updated_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][is_active]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_city}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][city]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][company]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_country_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_firstname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_lastname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_postcode}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_street}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_telephone}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][customer_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][customer_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">John</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Doe</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Test Company</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][company]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Folsom</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][city]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">95630</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1234567890</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123 Main</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region_id]</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/customer/index/validate/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="49586">200</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Customer Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="isAjax   " elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax   </stringProp>
            </elementProp>
            <elementProp name="customer[entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[entity_id]</stringProp>
            </elementProp>
            <elementProp name="customer[website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_website_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[website_id]</stringProp>
            </elementProp>
            <elementProp name="customer[email]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_email}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[email]</stringProp>
            </elementProp>
            <elementProp name="customer[group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_group_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[group_id]</stringProp>
            </elementProp>
            <elementProp name="customer[store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[store_id]</stringProp>
            </elementProp>
            <elementProp name="customer[created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_at]</stringProp>
            </elementProp>
            <elementProp name="customer[updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[updated_at]</stringProp>
            </elementProp>
            <elementProp name="customer[is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[is_active]</stringProp>
            </elementProp>
            <elementProp name="customer[disable_auto_group_change]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_disable_auto_group_change}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[disable_auto_group_change]</stringProp>
            </elementProp>
            <elementProp name="customer[created_in]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_in}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_in]</stringProp>
            </elementProp>
            <elementProp name="customer[prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[prefix]</stringProp>
            </elementProp>
            <elementProp name="customer[firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_firstname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[firstname]</stringProp>
            </elementProp>
            <elementProp name="customer[middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[middlename]</stringProp>
            </elementProp>
            <elementProp name="customer[lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_lastname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[lastname]</stringProp>
            </elementProp>
            <elementProp name="customer[suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[suffix]</stringProp>
            </elementProp>
            <elementProp name="customer[dob]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_dob}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[dob]</stringProp>
            </elementProp>
            <elementProp name="customer[default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_billing}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_billing]</stringProp>
            </elementProp>
            <elementProp name="customer[default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_shipping}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_shipping]</stringProp>
            </elementProp>
            <elementProp name="customer[taxvat]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[taxvat]</stringProp>
            </elementProp>
            <elementProp name="customer[gender]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_gender}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[gender]</stringProp>
            </elementProp>
            <elementProp name="customer[failures_num]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_failures_num}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[failures_num]</stringProp>
            </elementProp>
            <elementProp name="customer[sendemail_store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[sendemail_store_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][entity_id]</stringProp>
            </elementProp>

            <elementProp name="address[${admin_customer_address_entity_id}][created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][created_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][updated_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][is_active]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_city}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][city]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][company]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_country_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_firstname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_lastname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_postcode}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_street}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_telephone}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][customer_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][customer_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">John</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Doe</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Test Company</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][company]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Folsom</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][city]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">95630</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1234567890</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123 Main</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">12</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region_id]</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/customer/index/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer saved" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="292987815">You saved the customer.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCustomerManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[GraphQL C] Admin Edit Order" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminEditOrderPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[GraphQL C] Admin Edit Order");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Orders page" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/orders_page.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1204796042">Create New Order</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">desc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
        </elementProp>
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/open_orders.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1637639774">totalRecords</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Pending Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
        </elementProp>
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">asc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/search_orders.jmx</stringProp></HTTPSamplerProxy>
<hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">totalRecords</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order numbers" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_numbers</stringProp>
        <stringProp name="RegexExtractor.regex">\"increment_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order ids" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_ids</stringProp>
        <stringProp name="RegexExtractor.regex">\"entity_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>

      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Generate Unique Ids for each Thread" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
  import java.util.ArrayList;
  import java.util.HashMap;
  import org.apache.jmeter.protocol.http.util.Base64Encoder;
  import java.util.Random;

  // get count of "order_numbers" variable defined in "Search Pending Orders Limit"
  int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr"));


  int clusterLength;
  int threadsNumber = ctx.getThreadGroup().getNumThreads();
  if (threadsNumber == 0) {
      //Number of orders for one thread
      clusterLength = ordersCount;
  } else {
      clusterLength = Math.round(ordersCount / threadsNumber);
      if (clusterLength == 0) {
          clusterLength = 1;
      }
  }

  //Current thread number starts from 0
  int currentThreadNum = ctx.getThreadNum();

  //Index of the current product from the cluster
  Random random = new Random();
  if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
  }
  int iterator = random.nextInt(clusterLength);
  if (iterator == 0) {
  	iterator = 1;
  }

  int i = clusterLength * currentThreadNum + iterator;

  orderNumber = vars.get("order_numbers_" + i.toString());
  orderId = vars.get("order_ids_" + i.toString());
  vars.put("order_number", orderNumber);
  vars.put("order_id", orderId);

  </stringProp>
    <stringProp name="BeanShellSampler.filename"/>
    <stringProp name="BeanShellSampler.parameters"/>
    <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
  </BeanShellSampler>
  <hashTree/>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Order" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/view/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/open_order.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="2103620713">#${order_number}</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order status" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">order_status</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;span id="order_status"&gt;([^&lt;]+)&lt;/span&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
      <stringProp name="IfController.condition">"${order_status}" == "Pending"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/if_controller.jmx</stringProp></IfController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Comment" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="history[status]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">pending</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">history[status]</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="history[comment]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Some text</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">history[comment]</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/addComment/order_id/${order_id}/?isAjax=true</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/add_comment.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-2089278331">Not Notified</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Start" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/invoice_start.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="-1233850814">Invoice Totals</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract ordered items ids" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">item_ids</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;div id="order_item_(\d+)_title"\s*class="product-title"&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">-1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Submit" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_1}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_1}]</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_2}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_2}]</stringProp>
        </elementProp>
        <elementProp name="invoice[comment_text]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">Invoiced</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[comment_text]</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">POST</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1740524604">The invoice has been created</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Shipment Start" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/order_shipment/start/order_id/${order_id}/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/shipment_start.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="304100442">New Shipment</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Shipment Submit" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="shipment[items][${item_ids_1}]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">shipment[items][${item_ids_1}]</stringProp>
          </elementProp>
          <elementProp name="shipment[items][${item_ids_2}]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">shipment[items][${item_ids_2}]</stringProp>
          </elementProp>
          <elementProp name="shipment[comment_text]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Shipped</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">shipment[comment_text]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/shipment_submit.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-2089453199">The shipment has been created</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  </hashTree>

    
        <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="REST API Combined Benchmark Pool" enabled="true">
            <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
            <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
                <boolProp name="LoopController.continue_forever">false</boolProp>
                <stringProp name="LoopController.loops">${loops}</stringProp>
            </elementProp>
            <stringProp name="ThreadGroup.num_threads">${restAPIcombinedBenchmarkPoolUsers}</stringProp>
            <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
            <longProp name="ThreadGroup.start_time">1505803944000</longProp>
            <longProp name="ThreadGroup.end_time">1505803944000</longProp>
            <boolProp name="ThreadGroup.scheduler">false</boolProp>
            <stringProp name="ThreadGroup.duration"/>
            <stringProp name="ThreadGroup.delay"/>
        <stringProp name="TestPlan.comments">tool/fragments/_system/thread_group.jmx</stringProp></ThreadGroup>
        <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Cache hit miss" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">var cacheHitPercent = vars.get("cache_hits_percentage");

if (
	cacheHitPercent &lt; 100 &amp;&amp;
	sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
) {
	doCache();
}

function doCache(){
	var random = Math.random() * 100;
	if (cacheHitPercent &lt; random) {
		sampler.setPath(sampler.getPath() + "?cacheModifier=" + Math.random().toString(36).substring(2, 13));
	}
}
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/cache_hit_miss.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Catalog Browsing By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cBrowseCatalogByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Catalog Browsing By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^.{10,}$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Home Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">identifier</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">home</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">eq</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/cmsPage/search</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_home_page.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Category List" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[page_size]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/categories</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_list_of_categories.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get List of Products by category_id" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">category_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${category_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">eq</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[page_size]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">12</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_list_of_products_by_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Simple Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">url_key</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">${product_url_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][condition_type]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">eq</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_simple_product_details_by_product_url_key.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
              <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
                <collectionProp name="Asserion.test_strings">
                  <stringProp name="-1294635157">errors</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">6</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable"/>
              </ResponseAssertion>
            <hashTree/>
              <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
                <stringProp name="JSON_PATH">$.items[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE"/>
                <boolProp name="JSONVALIDATION">false</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
              </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Configurable Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">url_key</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">${product_url_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][condition_type]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">eq</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_configurable_product_details_by_product_url_key.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
              <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
                <collectionProp name="Asserion.test_strings">
                  <stringProp name="-1294635157">errors</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">6</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable"/>
              </ResponseAssertion>
            <hashTree/>
              <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
                <stringProp name="JSON_PATH">$.items[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE"/>
                <boolProp name="JSONVALIDATION">false</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
              </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Site Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cSiteSearchPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Site Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <CSVDataSet guiclass="TestBeanGUI" testclass="CSVDataSet" testname="Search Terms" enabled="true">
      <stringProp name="filename">${files_folder}search_terms.csv</stringProp>
      <stringProp name="fileEncoding">UTF-8</stringProp>
      <stringProp name="variableNames"/>
      <stringProp name="delimiter">,</stringProp>
      <boolProp name="quotedData">false</boolProp>
      <boolProp name="recycle">true</boolProp>
      <boolProp name="stopThread">false</boolProp>
      <stringProp name="shareMode">shareMode.thread</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/search_terms.jmx</stringProp></CSVDataSet>
    <hashTree/>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^.{10,}$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Quick Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${searchQuickPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Quick Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Home Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">identifier</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">home</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">eq</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/cmsPage/search</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_home_page.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[request_name]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">quick_search_container</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[request_name]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">search_term</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${searchTerm}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[page_size]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">20</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/search</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/search_quick.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">api_search_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("api_search_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product ids" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">product_ids</stringProp>
          <stringProp name="RegexExtractor.regex">"id":([^',]+)</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">-1</stringProp>
        </RegexExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute code 1" enabled="true">
        <stringProp name="VAR">attribute_code_1</stringProp>
        <stringProp name="JSONPATH">$.aggregations.buckets[1].name</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute value 1" enabled="true">
        <stringProp name="VAR">attribute_value_1</stringProp>
        <stringProp name="JSONPATH">$.aggregations.buckets[1].values[0].value</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute code 2" enabled="true">
        <stringProp name="VAR">attribute_code_2</stringProp>
        <stringProp name="JSONPATH">$.aggregations.buckets[2].name</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute value 2" enabled="true">
        <stringProp name="VAR">attribute_value_2</stringProp>
        <stringProp name="JSONPATH">$.aggregations.buckets[2].values[0].value</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">
foundProducts = Integer.parseInt(vars.get("product_ids_matchNr"));

if (foundProducts &gt; 3) {
	foundProducts = 3;
}

vars.put("foundProducts", String.valueOf(foundProducts));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/set_found_items_by_id.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Searched Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${foundProducts}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/search/searched_products_setup_by_id.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
product = vars.get("product_ids_"+number);

vars.put("product_id", product);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">entity_id</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">${product_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][condition_type]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">eq</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_simple_product_details_by_product_id.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
              <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
                <collectionProp name="Asserion.test_strings">
                  <stringProp name="-1294635157">errors</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">6</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable"/>
              </ResponseAssertion>
            <hashTree/>
              <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
                <stringProp name="JSON_PATH">$.items[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE"/>
                <boolProp name="JSONVALIDATION">false</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
              </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Quick Search With Filtration" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${searchQuickFilterPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Quick Search With Filtration");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Home Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">identifier</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">home</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">eq</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/cmsPage/search</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_home_page.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[request_name]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">quick_search_container</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[request_name]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">search_term</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${searchTerm}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[page_size]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">20</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/search</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/search_quick.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">api_search_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("api_search_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product ids" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">product_ids</stringProp>
          <stringProp name="RegexExtractor.regex">"id":([^',]+)</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">-1</stringProp>
        </RegexExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute code 1" enabled="true">
        <stringProp name="VAR">attribute_code_1</stringProp>
        <stringProp name="JSONPATH">$.aggregations.buckets[1].name</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute value 1" enabled="true">
        <stringProp name="VAR">attribute_value_1</stringProp>
        <stringProp name="JSONPATH">$.aggregations.buckets[1].values[0].value</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute code 2" enabled="true">
        <stringProp name="VAR">attribute_code_2</stringProp>
        <stringProp name="JSONPATH">$.aggregations.buckets[2].name</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute value 2" enabled="true">
        <stringProp name="VAR">attribute_value_2</stringProp>
        <stringProp name="JSONPATH">$.aggregations.buckets[2].values[0].value</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Filter by Attribute" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Attributes Data" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/searched_attributes_setup.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
attribute_code = vars.get("attribute_code_"+number);

attribute_code = attribute_code.replace("_bucket", "");

vars.put("attribute_code", attribute_code);

attribute_value = vars.get("attribute_value_"+number);

vars.put("attribute_value", attribute_value);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Filter by Attribute ${_counter}" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[request_name]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">quick_search_container</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[request_name]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">search_term</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${searchTerm}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][1][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_code}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][1][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][1][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_value}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][1][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[page_size]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">20</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/search</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/search_quick_filter_attribute.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">api_search_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("api_search_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product ids" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">product_ids</stringProp>
          <stringProp name="RegexExtractor.regex">"id":([^',]+)</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">-1</stringProp>
        </RegexExtractor>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">
foundProducts = Integer.parseInt(vars.get("product_ids_matchNr"));

if (foundProducts &gt; 3) {
	foundProducts = 3;
}

vars.put("foundProducts", String.valueOf(foundProducts));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/set_found_items_by_id.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Searched Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${foundProducts}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/search/searched_products_setup_by_id.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
product = vars.get("product_ids_"+number);

vars.put("product_id", product);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">entity_id</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">${product_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][condition_type]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">eq</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_simple_product_details_by_product_id.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
              <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
                <collectionProp name="Asserion.test_strings">
                  <stringProp name="-1294635157">errors</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">6</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable"/>
              </ResponseAssertion>
            <hashTree/>
              <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
                <stringProp name="JSON_PATH">$.items[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE"/>
                <boolProp name="JSONVALIDATION">false</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
              </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Advanced Search" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${searchAdvancedPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Advanced Search");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Home Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">identifier</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">home</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">eq</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/cmsPage/search</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_home_page.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Advanced" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[request_name]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">quick_search_container</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[request_name]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">search_term</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${searchTerm}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][1][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">price.to</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][1][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][1][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${priceTo}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][1][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[page_size]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">20</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/search</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/search_advanced.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">api_search_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("api_search_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract product ids" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">product_ids</stringProp>
          <stringProp name="RegexExtractor.regex">"id":([^',]+)</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">-1</stringProp>
        </RegexExtractor>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">
foundProducts = Integer.parseInt(vars.get("product_ids_matchNr"));

if (foundProducts &gt; 3) {
	foundProducts = 3;
}

vars.put("foundProducts", String.valueOf(foundProducts));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/search/set_found_items_by_id.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Searched Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">${foundProducts}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Product Data" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/search/searched_products_setup_by_id.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
number = vars.get("_counter");
product = vars.get("product_ids_"+number);

vars.put("product_id", product);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">entity_id</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">${product_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][condition_type]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">eq</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_simple_product_details_by_product_id.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
              <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
                <collectionProp name="Asserion.test_strings">
                  <stringProp name="-1294635157">errors</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">6</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable"/>
              </ResponseAssertion>
            <hashTree/>
              <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
                <stringProp name="JSON_PATH">$.items[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE"/>
                <boolProp name="JSONVALIDATION">false</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
              </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Add To Cart By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAddToCartByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Add To Cart By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^.{10,}$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Guest Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/create_guest_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">cart_id</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Guest Cart Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">cart_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Home Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">identifier</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">home</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">eq</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/cmsPage/search</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_home_page.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Category List" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[page_size]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/categories</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_list_of_categories.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get List of Products by category_id" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">category_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${category_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">eq</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[page_size]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">12</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_list_of_products_by_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Simple Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">url_key</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">${product_url_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][condition_type]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">eq</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_simple_product_details_by_product_url_key.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
              <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
                <collectionProp name="Asserion.test_strings">
                  <stringProp name="-1294635157">errors</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">6</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable"/>
              </ResponseAssertion>
            <hashTree/>
              <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
                <stringProp name="JSON_PATH">$.items[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE"/>
                <boolProp name="JSONVALIDATION">false</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
              </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
	"cartItem": {&#xD;
		"sku": "${product_sku}",&#xD;
		"qty":"1",&#xD;
		"quote_id":"${cart_id}"&#xD;
	}&#xD;
}&#xD;
</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/items</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/guest_checkout/add_simple_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.quote_id</stringProp>
        <stringProp name="EXPECTED_VALUE">^[a-z0-9-]+$</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Configurable Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">url_key</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">${product_url_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][condition_type]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">eq</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_configurable_product_details_by_product_url_key.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
              <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
                <collectionProp name="Asserion.test_strings">
                  <stringProp name="-1294635157">errors</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">6</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable"/>
              </ResponseAssertion>
            <hashTree/>
              <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
                <stringProp name="JSON_PATH">$.items[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE"/>
                <boolProp name="JSONVALIDATION">false</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
              </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        </hashTree>
    
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Options" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/configurable-products/${product_sku}/children</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_configurable_product_options_by_product_sku.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
              <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
                <collectionProp name="Asserion.test_strings">
                  <stringProp name="-1294635157">errors</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">6</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable"/>
              </ResponseAssertion>
            <hashTree/>
              <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
                <stringProp name="JSON_PATH">$[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE"/>
                <boolProp name="JSONVALIDATION">false</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
              </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        
    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract Configurable Product option" enabled="true">
      <stringProp name="VAR">product_option</stringProp>
      <stringProp name="JSONPATH">$[0].sku</stringProp>
      <stringProp name="DEFAULT"/>
      <stringProp name="VARIABLE"/>
      <stringProp name="SUBJECT">BODY</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/extract_configurable_product_option_from_product_detail.jmx</stringProp></com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
    <hashTree/>
  </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
	"cartItem": {&#xD;
		"sku": "${product_option}",&#xD;
		"qty":"1",&#xD;
		"quote_id":"${cart_id}"&#xD;
	}&#xD;
}&#xD;
</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/items</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/guest_checkout/add_configurable_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.quote_id</stringProp>
        <stringProp name="EXPECTED_VALUE">^[a-z0-9-]+$</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Add to Wishlist" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAddToWishlistPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Add to Wishlist");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^.{10,}$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Add Products to Wishlist" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">5</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">url_key</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">${product_url_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][condition_type]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">eq</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_simple_product_details_by_product_url_key.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
              <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
                <collectionProp name="Asserion.test_strings">
                  <stringProp name="-1294635157">errors</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">6</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable"/>
              </ResponseAssertion>
            <hashTree/>
              <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
                <stringProp name="JSON_PATH">$.items[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE"/>
                <boolProp name="JSONVALIDATION">false</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
              </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Compare Products" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cCompareProductsPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Compare Products");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^.{10,}$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Home Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">identifier</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">home</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">eq</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/cmsPage/search</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_home_page.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Category List" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[page_size]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/categories</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_list_of_categories.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get List of Products by category_id" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">category_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${category_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">eq</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[page_size]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">12</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_list_of_products_by_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Simple Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">url_key</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">${product_url_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][condition_type]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">eq</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_simple_product_details_by_product_url_key.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
              <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
                <collectionProp name="Asserion.test_strings">
                  <stringProp name="-1294635157">errors</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">6</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable"/>
              </ResponseAssertion>
            <hashTree/>
              <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
                <stringProp name="JSON_PATH">$.items[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE"/>
                <boolProp name="JSONVALIDATION">false</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
              </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Configurable Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">url_key</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">${product_url_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][condition_type]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">eq</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_configurable_product_details_by_product_url_key.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
              <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
                <collectionProp name="Asserion.test_strings">
                  <stringProp name="-1294635157">errors</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">6</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable"/>
              </ResponseAssertion>
            <hashTree/>
              <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
                <stringProp name="JSON_PATH">$.items[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE"/>
                <boolProp name="JSONVALIDATION">false</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
              </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        </hashTree>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Checkout By Guest" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cCheckoutByGuestPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Checkout By Guest");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^.{10,}$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Guest Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/create_guest_cart.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">cart_id</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Guest Cart Id extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">cart_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Home Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">identifier</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">home</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">eq</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/cmsPage/search</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_home_page.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Category List" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[page_size]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/categories</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_list_of_categories.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get List of Products by category_id" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">category_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${category_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">eq</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[page_size]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">12</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_list_of_products_by_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Simple Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">url_key</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">${product_url_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][condition_type]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">eq</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_simple_product_details_by_product_url_key.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
              <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
                <collectionProp name="Asserion.test_strings">
                  <stringProp name="-1294635157">errors</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">6</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable"/>
              </ResponseAssertion>
            <hashTree/>
              <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
                <stringProp name="JSON_PATH">$.items[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE"/>
                <boolProp name="JSONVALIDATION">false</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
              </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
	"cartItem": {&#xD;
		"sku": "${product_sku}",&#xD;
		"qty":"1",&#xD;
		"quote_id":"${cart_id}"&#xD;
	}&#xD;
}&#xD;
</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/items</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/guest_checkout/add_simple_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.quote_id</stringProp>
        <stringProp name="EXPECTED_VALUE">^[a-z0-9-]+$</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Configurable Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">url_key</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">${product_url_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][condition_type]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">eq</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_configurable_product_details_by_product_url_key.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
              <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
                <collectionProp name="Asserion.test_strings">
                  <stringProp name="-1294635157">errors</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">6</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable"/>
              </ResponseAssertion>
            <hashTree/>
              <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
                <stringProp name="JSON_PATH">$.items[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE"/>
                <boolProp name="JSONVALIDATION">false</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
              </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        </hashTree>
    
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Options" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/configurable-products/${product_sku}/children</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_configurable_product_options_by_product_sku.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
              <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
                <collectionProp name="Asserion.test_strings">
                  <stringProp name="-1294635157">errors</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">6</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable"/>
              </ResponseAssertion>
            <hashTree/>
              <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
                <stringProp name="JSON_PATH">$[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE"/>
                <boolProp name="JSONVALIDATION">false</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
              </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        
    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract Configurable Product option" enabled="true">
      <stringProp name="VAR">product_option</stringProp>
      <stringProp name="JSONPATH">$[0].sku</stringProp>
      <stringProp name="DEFAULT"/>
      <stringProp name="VARIABLE"/>
      <stringProp name="SUBJECT">BODY</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/extract_configurable_product_option_from_product_detail.jmx</stringProp></com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
    <hashTree/>
  </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
	"cartItem": {&#xD;
		"sku": "${product_option}",&#xD;
		"qty":"1",&#xD;
		"quote_id":"${cart_id}"&#xD;
	}&#xD;
}&#xD;
</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/items</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/guest_checkout/add_configurable_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.quote_id</stringProp>
        <stringProp name="EXPECTED_VALUE">^[a-z0-9-]+$</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Get region data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">
      vars.put("alabama_region_id", props.get("alabama_region_id"));
      vars.put("california_region_id", props.get("california_region_id"));
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_region_data.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Estimate Shipping Methods" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"address":{"country_id":"US","postcode":"95630"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/estimate-shipping-methods</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/guest_checkout/checkout_estimate_shipping_methods_with_postal_code.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1224567411">"available":true</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Billing/Shipping Information" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"addressInformation":{"shipping_address":{"countryId":"US","regionId":"${california_region_id}","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/shipping-information</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/guest_checkout/checkout_billing_shipping_information.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1494218646">{"payment_methods":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Payment Info/Place Order" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"cartId":"${cart_id}","email":"test@example.com","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"countryId":"US","regionId":"${california_region_id}","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname","save_in_address_book":0}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/guest-carts/${cart_id}/payment-information</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/guest_checkout/checkout_payment_info_place_order.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-297987887">"[0-9]+"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">order_id</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">order_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Checkout By Customer" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cCheckoutByCustomerPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Checkout By Customer");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^.{10,}$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Prepare Category Data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = vars.getObject("randomIntGenerator");

var categories = props.get("categories");
number = random.nextInt(categories.length);

vars.put("category_url_key", categories[number].url_key);
vars.put("category_name", categories[number].name);
vars.put("category_id", categories[number].id);
vars.putObject("category", categories[number]);
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/extract_category_setup.jmx</stringProp></JSR223Sampler>
    <hashTree/>
  
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customerUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
  "username": "${customer_email}",&#xD;
  "password": "${customer_password}"&#xD;
}&#xD;
</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/integration/customer/token</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/login.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract customer token" enabled="true">
        <stringProp name="VAR">customer_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$</stringProp>
        <stringProp name="EXPECTED_VALUE"/>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Customer Cart" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/mine</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/api/create_customer_cart.jmx</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
          <stringProp name="VAR">cart_id</stringProp>
          <stringProp name="JSONPATH">$</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Guest Cart Id extracted" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">cart_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
          <boolProp name="resetInterpreter">false</boolProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
          <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/set_customer_token.jmx</stringProp>
        </BeanShellPreProcessor>
        <hashTree/>
      </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Home Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">identifier</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">home</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">eq</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/cmsPage/search</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_home_page.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Category List" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[page_size]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/categories</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_list_of_categories.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get List of Products by category_id" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" testname="User Defined Variables" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">category_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${category_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">eq</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[page_size]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">12</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[page_size]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_list_of_products_by_category_id.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1294635157">errors</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">6</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable"/>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Simple Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">2</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Simple Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/simple_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">url_key</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">${product_url_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][condition_type]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">eq</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_simple_product_details_by_product_url_key.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
              <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
                <collectionProp name="Asserion.test_strings">
                  <stringProp name="-1294635157">errors</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">6</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable"/>
              </ResponseAssertion>
            <hashTree/>
              <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
                <stringProp name="JSON_PATH">$.items[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE"/>
                <boolProp name="JSONVALIDATION">false</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
              </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product ${_counter} Add To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
	"cartItem": {&#xD;
		"sku": "${product_sku}",&#xD;
		"qty":"1",&#xD;
		"quote_id":"${cart_id}"&#xD;
	}&#xD;
}&#xD;
</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/mine/items</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/customer_checkout/add_simple_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.quote_id</stringProp>
        <stringProp name="EXPECTED_VALUE">^[a-z0-9-]+$</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/api/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  </hashTree>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="View Configurable Products" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/loop_controller.jmx</stringProp></LoopController>
    <hashTree>
      <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
        <stringProp name="CounterConfig.start">1</stringProp>
        <stringProp name="CounterConfig.end"/>
        <stringProp name="CounterConfig.incr">1</stringProp>
        <stringProp name="CounterConfig.name">_counter</stringProp>
        <stringProp name="CounterConfig.format"/>
        <boolProp name="CounterConfig.per_user">true</boolProp>
        <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
      </CounterConfig>
      <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Prepare Configurable Product Data" enabled="true">
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("configurable_products_list").get(number);

vars.put("product_url_key", product.get("url_key"));
vars.put("product_id", product.get("id"));
vars.put("product_name", product.get("title"));
vars.put("product_uenc", product.get("uenc"));
vars.put("product_sku", product.get("sku"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/product_browsing_and_adding_items_to_the_cart/configurable_products_setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} View" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][field]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">url_key</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][field]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][value]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">${product_url_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][value]</stringProp>
                    </elementProp>
                    <elementProp name="searchCriteria[filter_groups][0][filters][0][condition_type]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">eq</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">searchCriteria[filter_groups][0][filters][0][condition_type]</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_configurable_product_details_by_product_url_key.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
              <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
                <collectionProp name="Asserion.test_strings">
                  <stringProp name="-1294635157">errors</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">6</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable"/>
              </ResponseAssertion>
            <hashTree/>
              <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
                <stringProp name="JSON_PATH">$.items[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE"/>
                <boolProp name="JSONVALIDATION">false</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
              </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        </hashTree>
    
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Options" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/configurable-products/${product_sku}/children</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">tool/fragments/ce/api/get_configurable_product_options_by_product_sku.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
              <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert results are present" enabled="true">
                <collectionProp name="Asserion.test_strings">
                  <stringProp name="-1294635157">errors</stringProp>
                </collectionProp>
                <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                <boolProp name="Assertion.assume_success">false</boolProp>
                <intProp name="Assertion.test_type">6</intProp>
                <stringProp name="Assertion.scope">variable</stringProp>
                <stringProp name="Scope.variable"/>
              </ResponseAssertion>
            <hashTree/>
              <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
                <stringProp name="JSON_PATH">$[0].sku</stringProp>
                <stringProp name="EXPECTED_VALUE"/>
                <boolProp name="JSONVALIDATION">false</boolProp>
                <boolProp name="EXPECT_NULL">false</boolProp>
                <boolProp name="INVERT">false</boolProp>
                <boolProp name="ISREGEX">false</boolProp>
              </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
            <hashTree/>
        
    <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract Configurable Product option" enabled="true">
      <stringProp name="VAR">product_option</stringProp>
      <stringProp name="JSONPATH">$[0].sku</stringProp>
      <stringProp name="DEFAULT"/>
      <stringProp name="VARIABLE"/>
      <stringProp name="SUBJECT">BODY</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/extract_configurable_product_option_from_product_detail.jmx</stringProp></com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
    <hashTree/>
  </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product ${_counter} Add To Cart" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
	"cartItem": {&#xD;
		"sku": "${product_option}",&#xD;
		"qty":"1",&#xD;
		"quote_id":"${cart_id}"&#xD;
	}&#xD;
}&#xD;
</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/mine/items</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/customer_checkout/add_configurable_product_to_cart.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.quote_id</stringProp>
        <stringProp name="EXPECTED_VALUE">^[a-z0-9-]+$</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/api/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  </hashTree>
  
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Get region data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">
      vars.put("alabama_region_id", props.get("alabama_region_id"));
      vars.put("california_region_id", props.get("california_region_id"));
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_region_data.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Estimate Shipping Methods" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"address":{"country_id":"US","postcode":"95630"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/mine/estimate-shipping-methods</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/customer_checkout/checkout_estimate_shipping_methods_with_postal_code.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1224567411">"available":true</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/api/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Billing/Shipping Information" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"addressInformation":{"shipping_address":{"countryId":"US","regionId":"${california_region_id}","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname"},"shipping_method_code":"flatrate","shipping_carrier_code":"flatrate"}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/mine/shipping-information</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/customer_checkout/checkout_billing_shipping_information.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1494218646">{"payment_methods":</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/api/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Payment Info/Place Order" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"cartId":"${cart_id}","email":"test@example.com","paymentMethod":{"method":"checkmo","po_number":null,"additional_data":null},"billingAddress":{"countryId":"US","regionId":"${california_region_id}","regionCode":"CA","region":"California","street":["10441 Jefferson Blvd ste 200"],"company":"","telephone":"3109450345","fax":"","postcode":"90232","city":"Culver City","firstname":"Name","lastname":"Lastname","save_in_address_book":0}}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/carts/mine/payment-information</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/customer_checkout/checkout_payment_info_place_order.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-297987887">"[0-9]+"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract cart id" enabled="true">
        <stringProp name="VAR">order_id</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">order_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
            <boolProp name="resetInterpreter">false</boolProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                sampler.getHeaderManager().removeHeaderNamed("Authorization");

                sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/api/set_customer_token.jmx</stringProp></BeanShellPreProcessor>
    </hashTree>
  
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Return Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">return-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Return Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/return_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Account management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAccountManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Account management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^.{10,}$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Get Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUser = customerUserList.poll();
if (customerUser == null) {
  SampleResult.setResponseMessage("customerUser list is empty");
  SampleResult.setResponseData("customerUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("customer_email", customerUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Orders" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">customer_email</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${customer_email}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">20</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[pageSize]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/orders</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/customer_orders.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract entity ids" enabled="true">
        <stringProp name="VAR">order_number</stringProp>
        <stringProp name="JSONPATH">$.items[0].increment_id</stringProp>
        <stringProp name="DEFAULT">NOT_FOUND</stringProp>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
    </hashTree>
  
    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Orders Controller" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/api/if_orders.jmx</stringProp>
      <stringProp name="IfController.condition">"${order_number}" != "NOT_FOUND"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    </IfController>
    <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View Orders" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments">
              <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">increment_id</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${order_number}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
              </elementProp>
              <elementProp name="searchCriteria[pageSize]" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">20</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">searchCriteria[pageSize]</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/orders</stringProp>
          <stringProp name="HTTPSampler.method">GET</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
          <stringProp name="TestPlan.comments">tool/fragments/ce/api/if_orders.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
            <stringProp name="JSON_PATH">$.items[0].increment_id</stringProp>
            <stringProp name="EXPECTED_VALUE"/>
            <boolProp name="JSONVALIDATION">false</boolProp>
            <boolProp name="EXPECT_NULL">false</boolProp>
            <boolProp name="INVERT">false</boolProp>
            <boolProp name="ISREGEX">false</boolProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
          <hashTree/>
        </hashTree>
    </hashTree>
  
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Return Customer Email" enabled="true">
        <stringProp name="CriticalSectionController.lockName">return-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Return Customer Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/return_customer_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
customerUserList = props.get("customer_emails_list");
customerUserList.add(vars.get("customer_email"));
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Admin CMS Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminCMSManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Admin CMS Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin CMS Management" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_cms_management/admin_cms_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/new</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="content" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;CMS Content ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">content</stringProp>
            </elementProp>
            <elementProp name="content_heading" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">content_heading</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
            <elementProp name="identifier" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">identifier</stringProp>
            </elementProp>
            <elementProp name="is_active" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_active</stringProp>
            </elementProp>
            <elementProp name="layout_update_xml" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">layout_update_xml</stringProp>
            </elementProp>
            <elementProp name="meta_description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_description</stringProp>
            </elementProp>
            <elementProp name="meta_keywords" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_keywords</stringProp>
            </elementProp>
            <elementProp name="meta_title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_title</stringProp>
            </elementProp>
            <elementProp name="nodes_data" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">nodes_data</stringProp>
            </elementProp>
            <elementProp name="node_ids" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">node_ids</stringProp>
            </elementProp>
            <elementProp name="page_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">page_id</stringProp>
            </elementProp>
            <elementProp name="page_layout" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1column</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">page_layout</stringProp>
            </elementProp>
            <elementProp name="store_id[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_id[0]</stringProp>
            </elementProp>
            <elementProp name="title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">CMS Title ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">title</stringProp>
            </elementProp>
            <elementProp name="website_root" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">website_root</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-398886250">You saved the page.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCMSManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Admin Browse Product Grid" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminBrowseProductGridPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Admin Browse Product Grid");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="script">
        vars.put("gridEntityType" , "Product");

        pagesCount = parseInt(vars.get("products_page_size")) || 20;
        vars.put("grid_entity_page_size" , pagesCount);
        vars.put("grid_namespace" , "product_listing");
        vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_product_filter_text"));
        vars.put("grid_filter_field", "name");

        // set sort fields and sort directions
        vars.put("grid_sort_field_1", "name");
        vars.put("grid_sort_field_2", "price");
        vars.put("grid_sort_field_3", "attribute_set_id");
        vars.put("grid_sort_order_1", "asc");
        vars.put("grid_sort_order_2", "desc");
      </stringProp>
      <stringProp name="scriptLanguage">javascript</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_browse_products_grid/setup.jmx</stringProp></JSR223PostProcessor>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} pages count" enabled="true">
        <stringProp name="cacheKey"/>
        <stringProp name="filename"/>
        <stringProp name="parameters"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
          var totalsRecord = parseInt(vars.get("entity_total_records"));
          var pageCount = Math.round(totalsRecord/pageSize);

          vars.put("grid_pages_count", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Filtered Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} filtered pages count" enabled="true">
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
var totalsRecord = parseInt(vars.get("entity_total_records"));
var pageCount = Math.round(totalsRecord/pageSize);

vars.put("grid_pages_count_filtered", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${page_number}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select Filtered ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count_filtered}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="View ${gridEntityType} page - Filtering + Sorting" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Field Defined" enabled="true">
        <stringProp name="ForeachController.inputVal">grid_sort_field</stringProp>
        <stringProp name="ForeachController.returnVal">grid_sort_field</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
        <stringProp name="ForeachController.startIndex">0</stringProp>
        <stringProp name="ForeachController.endIndex">3</stringProp>
      </ForeachController>
      <hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Order Defined" enabled="true">
          <stringProp name="ForeachController.inputVal">grid_sort_order</stringProp>
          <stringProp name="ForeachController.returnVal">grid_sort_order</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
          <stringProp name="ForeachController.startIndex">0</stringProp>
          <stringProp name="ForeachController.endIndex">2</stringProp>
        </ForeachController>
        <hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page - Filtering + Sort By ${grid_sort_field} ${grid_sort_order}" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
              <collectionProp name="Arguments.arguments">
                <elementProp name="namespace" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_namespace}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">namespace</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[${grid_filter_field}]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[${grid_filter_field}]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[placeholder]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[placeholder]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[pageSize]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[pageSize]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[current]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${page_number}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[current]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[field]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_field}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[field]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[direction]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_order}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[direction]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="isAjax" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">isAjax</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
          </HTTPSamplerProxy>
          <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
              </collectionProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Admin Browse Order Grid" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminBrowseOrderGridPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Admin Browse Order Grid");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="script">
        vars.put("gridEntityType" , "Order");

        pagesCount = parseInt(vars.get("orders_page_size")) || 20;
        vars.put("grid_entity_page_size" , pagesCount);
        vars.put("grid_namespace" , "sales_order_grid");
        vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_orders_filter_text"));
        vars.put("grid_filter_field", "status");

        // set sort fields and sort directions
        vars.put("grid_sort_field_1", "increment_id");
        vars.put("grid_sort_field_2", "created_at");
        vars.put("grid_sort_field_3", "billing_name");
        vars.put("grid_sort_order_1", "asc");
        vars.put("grid_sort_order_2", "desc");
      </stringProp>
      <stringProp name="scriptLanguage">javascript</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_browse_orders_grid/setup.jmx</stringProp></JSR223PostProcessor>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} pages count" enabled="true">
        <stringProp name="cacheKey"/>
        <stringProp name="filename"/>
        <stringProp name="parameters"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
          var totalsRecord = parseInt(vars.get("entity_total_records"));
          var pageCount = Math.round(totalsRecord/pageSize);

          vars.put("grid_pages_count", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Filtered Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} filtered pages count" enabled="true">
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
var totalsRecord = parseInt(vars.get("entity_total_records"));
var pageCount = Math.round(totalsRecord/pageSize);

vars.put("grid_pages_count_filtered", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${page_number}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select Filtered ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count_filtered}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="View ${gridEntityType} page - Filtering + Sorting" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Field Defined" enabled="true">
        <stringProp name="ForeachController.inputVal">grid_sort_field</stringProp>
        <stringProp name="ForeachController.returnVal">grid_sort_field</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
        <stringProp name="ForeachController.startIndex">0</stringProp>
        <stringProp name="ForeachController.endIndex">3</stringProp>
      </ForeachController>
      <hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Order Defined" enabled="true">
          <stringProp name="ForeachController.inputVal">grid_sort_order</stringProp>
          <stringProp name="ForeachController.returnVal">grid_sort_order</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
          <stringProp name="ForeachController.startIndex">0</stringProp>
          <stringProp name="ForeachController.endIndex">2</stringProp>
        </ForeachController>
        <hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page - Filtering + Sort By ${grid_sort_field} ${grid_sort_order}" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
              <collectionProp name="Arguments.arguments">
                <elementProp name="namespace" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_namespace}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">namespace</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[${grid_filter_field}]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[${grid_filter_field}]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[placeholder]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[placeholder]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[pageSize]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[pageSize]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[current]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${page_number}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[current]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[field]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_field}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[field]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[direction]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_order}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[direction]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="isAjax" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">isAjax</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
          </HTTPSamplerProxy>
          <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
              </collectionProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Admin Create Product" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminProductCreationPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Admin Create Product");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Once Only Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/once_only_controller.jmx</stringProp>
</OnceOnlyController>
    <hashTree>
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Related Product Id" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/get_related_product_id.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom});
}
relatedIndex = random.nextInt(props.get("simple_products_list").size());
vars.put("related_product_id", props.get("simple_products_list").get(relatedIndex).get("id"));</stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="SetUp - Get Product Attributes" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^.{10,}$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - API Get product attributes" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">mycolor</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">attribute_code</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][1][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">mysize</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][1][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">attribute_code</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][1][field]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attributes</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/get_product_attributes.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract product attributes" enabled="true">
        <stringProp name="VAR">product_attributes</stringProp>
        <stringProp name="JSONPATH">$.items</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="SetUp - Prepare product attributes" enabled="true">
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey"/>
        <stringProp name="script">
var attributesData = JSON.parse(vars.get("product_attributes")),
maxOptions = 2;

attributes = [];
for (i in attributesData) {
    if (i &gt;= 2) {
        break;
    }
    var data = attributesData[i],
        attribute = {
            "id": data.attribute_id,
            "code": data.attribute_code,
            "label": data.default_frontend_label,
            "options": []
        };

    var processedOptions = 0;
    for (optionN in data.options) {
        var option = data.options[optionN];
        if (parseInt(option.value) &gt; 0 &amp;&amp; processedOptions &lt; maxOptions) {
            processedOptions++;
            attribute.options.push(option);
        }
    }
    attributes.push(attribute);
}

vars.putObject("product_attributes", attributes);
</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get Attribute Set Id" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product_set/index/filter/${attribute_set_filter}</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_setup_attribute_set.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">attribute_set_id</stringProp>
        <stringProp name="RegexExtractor.regex">catalog&amp;#x2F;product_set&amp;#x2F;edit&amp;#x2F;id&amp;#x2F;([\d]+)&amp;#x2F;"[\D\d]*Attribute Set 1</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="SetUp - Set Attribute Set Filter" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">import org.apache.commons.codec.binary.Base64;

byte[] encodedBytes = Base64.encodeBase64("set_name=Attribute Set 1".getBytes());
vars.put("attribute_set_filter", new String(encodedBytes));
</stringProp>
      </BeanShellPreProcessor>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();
int number1;

if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom});
}
number = random.nextInt(props.get("simple_products_list_for_edit").size());

simpleList = props.get("simple_products_list_for_edit").get(number);
vars.put("simple_product_1_id", simpleList.get("id"));
vars.put("simple_product_1_name", simpleList.get("title"));

do {
    number1 = random.nextInt(props.get("simple_products_list_for_edit").size());
} while(number == number1);
simpleList = props.get("simple_products_list_for_edit").get(number1);
vars.put("simple_product_2_id", simpleList.get("id"));
vars.put("simple_product_2_name", simpleList.get("title"));

number2 = random.nextInt(props.get("configurable_products_list").size());
configurableList = props.get("configurable_products_list").get(number2);
vars.put("configurable_product_1_id", configurableList.get("id"));
vars.put("configurable_product_1_url_key", configurableList.get("url_key"));
vars.put("configurable_product_1_name", configurableList.get("title"));

//Additional category to be added
//int categoryId = Integer.parseInt(vars.get("simple_product_category_id"));
//vars.put("category_additional", (categoryId+1).toString());
//New price
vars.put("price_new", "9999");
//New special price
vars.put("special_price_new", "8888");
//New quantity
vars.put("quantity_new", "100600");
vars.put("configurable_sku", "Configurable Product - ${__time(YMD)}-${__threadNum}-${__Random(1,1000000)}");

      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Bundle Product" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/create_bundle_product.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1509986340">records found</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/4/type/bundle/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-144461265">New Product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product  ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">42</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variations]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            </elementProp>
            <elementProp name="product[shipment_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[shipment_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][title]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][required]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][product_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">25</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][product_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10.99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][title]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][option_id]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][delete]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][type]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][required]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][position]</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">7.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="affect_bundle_product_selections" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_bundle_product_selections</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/4/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1853918323">{"error":false}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Bundle Product Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">42</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full bundle product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short bundle product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variations]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">bundle-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Bundle Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            </elementProp>
            <elementProp name="product[shipment_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[shipment_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][required]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">25</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10.99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][0][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][0][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">option title two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][required]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][required]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_1_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][0][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][option_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][option_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][product_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${simple_product_2_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][product_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">7.00</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_value]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][selection_can_change_qty]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="bundle_options[bundle_options][1][bundle_selections][1][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">bundle_options[bundle_options][1][bundle_selections][1][position]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="affect_bundle_product_selections" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_bundle_product_selections</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/4/type/bundle/back/edit/active_tab/product-details/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-583471546">You saved the product</stringProp>
            <stringProp name="-1534079309">option title one</stringProp>
            <stringProp name="-1534074215">option title two</stringProp>
            <stringProp name="1304788671">${simple_product_2_name}</stringProp>
            <stringProp name="417284990">${simple_product_1_name}</stringProp>
          </collectionProp>

          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Create Configurable Product" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/open_catalog_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1509986340">records found</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Configurable Product" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/${attribute_set_id}/type/configurable/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/new_configurable.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-144461265">New Product</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Configurable Product Validate" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="ajax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">ajax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[affect_product_custom_options]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[affect_product_custom_options]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[attribute_set_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[attribute_set_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[category_ids][0]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">4</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[category_ids][0]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Description</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Keyword</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_title]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Title</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_title]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[name]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[name]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[options_container]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">container2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[options_container]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[product_has_weight]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[short_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[short_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[sku]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[sku]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[small_image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[small_image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[special_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${special_price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[special_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[status]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[status]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[thumbnail]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[thumbnail]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[url_key]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[url_key]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[visibility]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">4</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[visibility]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[website_ids][1]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[website_ids][1]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="links[related][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[related][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/${attribute_set_id}/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_validate.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1853918323">{"error":false}</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Prepare Configurable Data" enabled="true">
            <stringProp name="scriptLanguage">javascript</stringProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="cacheKey"/>
            <stringProp name="script">
attributes = vars.getObject("product_attributes");

for (i in attributes) {
    var attribute = attributes[i];
    sampler.addArgument("attribute_codes[" + i + "]", attribute.code);
    sampler.addArgument("attributes[" + i + "]", attribute.id);
    sampler.addArgument("product[" + attribute.code + "]", attribute.options[0].value);
    addConfigurableAttributeData(attribute);
}

addConfigurableMatrix(attributes);

function addConfigurableAttributeData(attribute) {
    var attributeId = attribute.id;

    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attribute.code);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attribute.label);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][position]", 0);
    attribute.options.forEach(function (option, index) {
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][include]", index);
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][value_index]", option.value);
    });
}

/**
 * Build 4 simple products for Configurable
 */
function addConfigurableMatrix(attributes) {

    var attribute1 = attributes[0],
        attribute2 = attributes[1],
        productIndex = 1,
        products = [];
    var variationNames = [];
    attribute1.options.forEach(function (option1) {
        attribute2.options.forEach(function (option2) {
            var productAttributes = {},
                namePart = option1.label + "+" + option2.label,
                variationKey = option1.value + "-" + option2.value;
            productAttributes[attribute1.code] = option1.value;
            productAttributes[attribute2.code] = option2.value;

            variationNames.push(namePart + " - " + vars.get("configurable_sku"));
            var product = {
                "id": null,
                "name": namePart + " - " + vars.get("configurable_sku"),
                "sku": namePart + " - " + vars.get("configurable_sku"),
                "status": 1,
                "price": "100",
                "price_currency": "$",
                "price_string": "$100",
                "weight": "6",
                "qty": "50",
                "variationKey": variationKey,
                "configurable_attribute": JSON.stringify(productAttributes),
                "thumbnail_image": "",
                "media_gallery": {"images": {}},
                "image": [],
                "was_changed": true,
                "canEdit": 1,
                "newProduct": 1,
                "record_id": productIndex
            };
            productIndex++;
            products.push(product);
        });
    });

    sampler.addArgument("configurable-matrix-serialized", JSON.stringify(products));
    vars.putObject("configurable_variations_assertion", variationNames);
}
            </stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Configurable Product Save" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="ajax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">ajax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[affect_product_custom_options]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[affect_product_custom_options]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[attribute_set_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${attribute_set_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[attribute_set_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[category_ids][0]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[category_ids][0]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[gift_wrapping_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[gift_wrapping_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Description</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Keyword</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[meta_title]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku} - Meta Title</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[meta_title]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[name]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[name]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[options_container]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">container2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[options_container]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[product_has_weight]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[short_description]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[short_description]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[sku]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${configurable_sku}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[sku]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[small_image]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[small_image]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[special_price]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${special_price_new}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[special_price]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[status]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[status]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10000</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">0</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_deferred_stock_update]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_deferred_stock_update]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_enable_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_enable_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">2</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[thumbnail]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[thumbnail]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[url_key]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[url_key]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[use_config_is_returnable]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[use_config_is_returnable]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[visibility]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">4</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[visibility]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="product[website_ids][1]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">product[website_ids][1]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="links[related][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[related][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[related][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${related_product_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
          </elementProp>
          <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/${attribute_set_id}/type/configurable/back/edit/active_tab/product-details/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_save.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-583471546">You saved the product</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <JSR223Assertion guiclass="TestBeanGUI" testclass="JSR223Assertion" testname="Assert Variation" enabled="true">
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="cacheKey"/>
        <stringProp name="script">
var configurableVariations = vars.getObject("configurable_variations_assertion"),
response = SampleResult.getResponseDataAsString();

configurableVariations.forEach(function (variation) {
    if (response.indexOf(variation) == -1) {
        AssertionResult.setFailureMessage("Cannot find variation \"" + variation + "\"");
        AssertionResult.setFailure(true);
    }
});
</stringProp>
      </JSR223Assertion>
      <hashTree/>
    
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Prepare Configurable Data" enabled="true">
            <stringProp name="scriptLanguage">javascript</stringProp>
            <stringProp name="parameters"/>
            <stringProp name="filename"/>
            <stringProp name="cacheKey"/>
            <stringProp name="script">
attributes = vars.getObject("product_attributes");

for (i in attributes) {
    var attribute = attributes[i];
    sampler.addArgument("attribute_codes[" + i + "]", attribute.code);
    sampler.addArgument("attributes[" + i + "]", attribute.id);
    sampler.addArgument("product[" + attribute.code + "]", attribute.options[0].value);
    addConfigurableAttributeData(attribute);
}

addConfigurableMatrix(attributes);

function addConfigurableAttributeData(attribute) {
    var attributeId = attribute.id;

    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attribute.code);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attribute.label);
    sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][position]", 0);
    attribute.options.forEach(function (option, index) {
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][include]", index);
        sampler.addArgument("product[configurable_attributes_data][" + attributeId + "][values][" + option.value + "][value_index]", option.value);
    });
}

/**
 * Build 4 simple products for Configurable
 */
function addConfigurableMatrix(attributes) {

    var attribute1 = attributes[0],
        attribute2 = attributes[1],
        productIndex = 1,
        products = [];
    var variationNames = [];
    attribute1.options.forEach(function (option1) {
        attribute2.options.forEach(function (option2) {
            var productAttributes = {},
                namePart = option1.label + "+" + option2.label,
                variationKey = option1.value + "-" + option2.value;
            productAttributes[attribute1.code] = option1.value;
            productAttributes[attribute2.code] = option2.value;

            variationNames.push(namePart + " - " + vars.get("configurable_sku"));
            var product = {
                "id": null,
                "name": namePart + " - " + vars.get("configurable_sku"),
                "sku": namePart + " - " + vars.get("configurable_sku"),
                "status": 1,
                "price": "100",
                "price_currency": "$",
                "price_string": "$100",
                "weight": "6",
                "qty": "50",
                "variationKey": variationKey,
                "configurable_attribute": JSON.stringify(productAttributes),
                "thumbnail_image": "",
                "media_gallery": {"images": {}},
                "image": [],
                "was_changed": true,
                "canEdit": 1,
                "newProduct": 1,
                "record_id": productIndex
            };
            productIndex++;
            products.push(product);
        });
    });

    sampler.addArgument("configurable-matrix-serialized", JSON.stringify(products));
    vars.putObject("configurable_variations_assertion", variationNames);
}
            </stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/configurable_prepare_data.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Downloadable Product" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/create_downloadable_product.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1509986340">records found</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/4/type/downloadable/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-144461265">New Product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Upload Original File" enabled="true">
        <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
          <collectionProp name="HTTPFileArgs.files">
            <elementProp name="${files_folder}downloadable_original.txt" elementType="HTTPFileArg">
              <stringProp name="File.path">${files_folder}downloadable_original.txt</stringProp>
              <stringProp name="File.paramname">links</stringProp>
              <stringProp name="File.mimetype">text/plain</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/downloadable_file/upload/type/links/?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract original file" enabled="true">
          <stringProp name="VAR">original_file</stringProp>
          <stringProp name="JSONPATH">$.file</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Upload Sample File" enabled="true">
        <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
          <collectionProp name="HTTPFileArgs.files">
            <elementProp name="${files_folder}downloadable_sample.txt" elementType="HTTPFileArg">
              <stringProp name="File.path">${files_folder}downloadable_sample.txt</stringProp>
              <stringProp name="File.paramname">samples</stringProp>
              <stringProp name="File.mimetype">text/plain</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/downloadable_file/upload/type/samples/?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">false</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract sample file" enabled="true">
          <stringProp name="VAR">sample_file</stringProp>
          <stringProp name="JSONPATH">$.file</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Product Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="is_downloadable" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">on</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_downloadable</stringProp>
            </elementProp>
            <elementProp name="product[links_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Links</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[links_title]</stringProp>
            </elementProp>
            <elementProp name="product[links_purchased_separately]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[links_purchased_separately]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${original_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_original.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">13</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_shareable]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_shareable]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_unlimited]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_unlimited]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][link_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][link_url]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][number_of_downloads]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][number_of_downloads]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">120</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][price]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][record_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][type]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][url]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sort_order]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Original Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][title]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][type]</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${sample_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_sample.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">14</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][record_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sample_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sample_url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sort_order]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Sample Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][title]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/4/type/downloadable/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1853918323">{"error":false}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Downloadable Product Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short downloadable product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Downloadable Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${original_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_original.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">13</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_shareable]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_shareable]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][is_unlimited]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][is_unlimited]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][link_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][link_url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][number_of_downloads]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][number_of_downloads]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">120</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][price]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][record_id]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sample][url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sample][url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][sort_order]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Original Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][title]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[link][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[link][0][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][file]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${sample_file}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][file]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">downloadable_sample.txt</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][name]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][size]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">14</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][size]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][file][0][status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">new</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][file][0][status]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][record_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][record_id]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sample_url]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sample_url]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][sort_order]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Sample Link</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][title]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="downloadable[sample][0][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">file</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">downloadable[sample][0][type]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/4/type/downloadable/back/edit/active_tab/product-details/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-583471546">You saved the product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1600986843">violation</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">6</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Simple Product" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_product/create_simple_product.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Catalog Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1509986340">records found</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Simple Product" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/new/set/4/type/simple/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-144461265">New Product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Simple Product Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_require]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_group]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Product Option Title One</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">200</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Row Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_require]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][max_characters]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">250</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][max_characters]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">text</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_group]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Field Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][title]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/set/4/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1853918323">{"error":false}</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="New Simple Product Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="ajax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">ajax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[name]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[name]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">SKU ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[sku]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[price]</stringProp>
            </elementProp>
            <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tax_class_id]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">111</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
            </elementProp>
            <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1.0000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[weight]</stringProp>
            </elementProp>
            <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[product_has_weight]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[category_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[category_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Full simple product Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[description]</stringProp>
            </elementProp>
            <elementProp name="product[short_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;p&gt;Short simple product description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}&lt;/p&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[short_description]</stringProp>
            </elementProp>
            <elementProp name="product[status]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[status]</stringProp>
            </elementProp>
            <elementProp name="product[image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[image]</stringProp>
            </elementProp>
            <elementProp name="product[small_image]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[small_image]</stringProp>
            </elementProp>
            <elementProp name="product[thumbnail]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[thumbnail]</stringProp>
            </elementProp>
            <elementProp name="product[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">simple-product-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[url_key]</stringProp>
            </elementProp>
            <elementProp name="product[meta_title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_title]</stringProp>
            </elementProp>
            <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Keyword</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_keyword]</stringProp>
            </elementProp>
            <elementProp name="product[meta_description]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Simple Product ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)} Meta Description</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[meta_description]</stringProp>
            </elementProp>
            <elementProp name="product[website_ids][]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[website_ids][]</stringProp>
            </elementProp>
            <elementProp name="product[special_price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_price]</stringProp>
            </elementProp>
            <elementProp name="product[special_from_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_from_date]</stringProp>
            </elementProp>
            <elementProp name="product[special_to_date]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[special_to_date]</stringProp>
            </elementProp>
            <elementProp name="product[cost]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[cost]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">32000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">90</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][0][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][0][delete]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][website_id]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][cust_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][cust_group]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">101</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price_qty]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">99</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[tier_price][1][delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[tier_price][1][delete]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">10000</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
            </elementProp>
            <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_from]</stringProp>
            </elementProp>
            <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_design_to]</stringProp>
            </elementProp>
            <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
            </elementProp>
            <elementProp name="product[page_layout]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[page_layout]</stringProp>
            </elementProp>
            <elementProp name="product[options_container]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">container2</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options_container]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[options][1][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][is_require]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">select</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_group]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][previous_type]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][sort_order]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Product Option Title One</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][title]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">drop_down</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][type]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">200</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][price_type]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-one</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sku]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][sort_order]</stringProp>
            </elementProp>
            <elementProp name="product[options][1][values][1][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Row Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][1][values][1][title]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_delete]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_delete]</stringProp>
              <stringProp name="Argument.desc">false</stringProp>
            </elementProp>
            <elementProp name="product[options][2][is_require]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][is_require]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][max_characters]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">250</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][max_characters]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_group]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">text</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_group]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][previous_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][previous_type]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">500</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][price_type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][price_type]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sku]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">sku-two</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sku]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][sort_order]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][sort_order]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][title]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Field Title</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][title]</stringProp>
            </elementProp>
            <elementProp name="product[options][2][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">field</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[options][2][type]</stringProp>
            </elementProp>
            <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">4</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">product[configurable_variation]</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="links[related][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[related][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[related][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[upsell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[upsell][0][position]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${related_product_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][id]</stringProp>
            </elementProp>
            <elementProp name="links[crosssell][0][position]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">links[crosssell][0][position]</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/set/4/type/simple/back/edit/active_tab/product-details/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-583471546">You saved the product</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1600986843">violation</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">6</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Admin Edit Product" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminProductEditingPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Admin Edit Product");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Edit Product" enabled="true"/>
              <hashTree>
                <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Generate Unique Ids for each Thread" enabled="true">
                  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_product/admin_edit_product_updated.jmx</stringProp>
                  <stringProp name="BeanShellSampler.query">import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Random;

    int relatedIndex;
    try {
    Random random = new Random();
    if (${seedForRandom} &gt; 0) {
      random.setSeed(${seedForRandom} + ${__threadNum});
    }
    simpleCount = props.get("simple_products_list_for_edit").size();
    configCount = props.get("configurable_products_list_for_edit").size();
    productCount = 0;
    if (simpleCount &gt; configCount) {
    	productCount = configCount;
    } else {
    	productCount = simpleCount;
    }
    int threadsNumber = ctx.getThreadGroup().getNumThreads();
    if (threadsNumber == 0) {
    	threadsNumber = 1;
    }
    //Current thread number starts from 0
    currentThreadNum = ctx.getThreadNum();

    String siterator = vars.get("threadIterator_" + currentThreadNum.toString());
    iterator = 0;
    if(siterator == null){
    	vars.put("threadIterator_" + currentThreadNum.toString() , "0");
    } else {
    	iterator = Integer.parseInt(siterator);
    	iterator ++;
    	vars.put("threadIterator_" + currentThreadNum.toString() , iterator.toString());
    }

    //Number of products for one thread
    productClusterLength = productCount / threadsNumber;

    if (iterator &gt;= productClusterLength) {
    	vars.put("threadIterator_" + currentThreadNum.toString(), "0");
    	iterator = 0;
    }

    //Index of the current product from the cluster
    i = productClusterLength * currentThreadNum + iterator;

    //ids of simple and configurable products to edit
    vars.put("simple_product_id", props.get("simple_products_list_for_edit").get(i).get("id"));
    vars.put("configurable_product_id", props.get("configurable_products_list_for_edit").get(i).get("id"));

    //id of related product
    do {
    	relatedIndex = random.nextInt(props.get("simple_products_list_for_edit").size());
    } while(i == relatedIndex);
    vars.put("related_product_id", props.get("simple_products_list_for_edit").get(relatedIndex).get("id"));
    } catch (Exception ex) {
    log.info("Script execution failed", ex);
}</stringProp>
                  <stringProp name="BeanShellSampler.filename"/>
                  <stringProp name="BeanShellSampler.parameters"/>
                  <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
                </BeanShellSampler>
                <hashTree/>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Simple Product" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments"/>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/edit/id/${simple_product_id}/</stringProp>
                  <stringProp name="HTTPSampler.method">GET</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1355179215">Product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">16</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract name" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">simple_product_name</stringProp>
                    <stringProp name="RegexExtractor.regex">,"name":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract sku" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">simple_product_sku</stringProp>
                    <stringProp name="RegexExtractor.regex">,"sku":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">simple_product_category_id</stringProp>
                    <stringProp name="RegexExtractor.regex">,"category_ids":."(\d+)".</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                </hashTree>
                <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set updated values" enabled="true">
                  <stringProp name="TestPlan.comments">Passing arguments between threads</stringProp>
                  <stringProp name="BeanShellSampler.query">//Additional category to be added
                    import java.util.Random;

                        Random randomGenerator = new Random();
                        int newCategoryId;
                        if (${seedForRandom} &gt; 0) {
                          randomGenerator.setSeed(${seedForRandom} + ${__threadNum});
                        }

                        int categoryId = Integer.parseInt(vars.get("simple_product_category_id"));
                        categoryList = props.get("admin_category_ids_list");

                        if (categoryList.size() &gt; 1) {
	                        do {
	                            int index = randomGenerator.nextInt(categoryList.size());
	                            newCategoryId = Integer.parseInt(categoryList.get(index));
	                        } while (categoryId == newCategoryId);

                            vars.put("category_additional", newCategoryId.toString());
                        }

                        //New price
                        vars.put("price_new", "9999");
                        //New special price
                        vars.put("special_price_new", "8888");
                        //New quantity
                        vars.put("quantity_new", "100600");
                  </stringProp>
                  <stringProp name="BeanShellSampler.filename"/>
                  <stringProp name="BeanShellSampler.parameters"/>
                  <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
                </BeanShellSampler>
                <hashTree/>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Simple Product Validate" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="ajax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">ajax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1.0000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Full simple product Description ${simple_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variations]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[small_image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[small_image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[thumbnail]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[thumbnail]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">10000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/id/${simple_product_id}/?isAjax=true</stringProp>
                  <stringProp name="HTTPSampler.method">POST</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1853918323">{"error":false}</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Simple Product Save" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="ajax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">ajax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1.0000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${category_additional}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Full simple product Description ${simple_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variations]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variations]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="affect_configurable_product_attributes" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">affect_configurable_product_attributes</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[small_image]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[small_image]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[thumbnail]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[thumbnail]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${simple_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][original_inventory_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][original_inventory_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${quantity_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">10000</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="new-variations-attribute-set-id" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">new-variations-attribute-set-id</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/id/${simple_product_id}/back/edit/active_tab/product-details/</stringProp>
                  <stringProp name="HTTPSampler.method">POST</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="-583471546">You saved the product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Configurable Product" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments"/>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/edit/id/${configurable_product_id}/</stringProp>
                  <stringProp name="HTTPSampler.method">GET</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1355179215">Product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">16</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract name" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_name</stringProp>
                    <stringProp name="RegexExtractor.regex">,"name":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract sku" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_sku</stringProp>
                    <stringProp name="RegexExtractor.regex">,"sku":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_category_id</stringProp>
                    <stringProp name="RegexExtractor.regex">,"category_ids":."(\d+)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract configurable attribute id" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_id</stringProp>
                    <stringProp name="RegexExtractor.regex">,"configurable_variation":"([^'"]+)",</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                    <boolProp name="RegexExtractor.default_empty_value">true</boolProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract configurable matrix" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_matrix</stringProp>
                    <stringProp name="RegexExtractor.regex">"configurable-matrix":(\[.*?\])</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                    <boolProp name="RegexExtractor.default_empty_value">true</boolProp>
                  </RegexExtractor>
                  <hashTree/>
                  <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract associated products ids" enabled="true">
                    <stringProp name="VAR">associated_products_ids</stringProp>
                    <stringProp name="JSONPATH">$.[*].id</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE">configurable_matrix</stringProp>
                    <stringProp name="SUBJECT">VAR</stringProp>
                  </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract configurable product json" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_product_data</stringProp>
                    <stringProp name="RegexExtractor.regex">(\{"product":.*?configurable_attributes_data.*?\})\s*&lt;</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">1</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract configurable attributes data" enabled="true">
                    <stringProp name="VAR">configurable_attributes_data</stringProp>
                    <stringProp name="JSONPATH">$.product.configurable_attributes_data</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE">configurable_product_data</stringProp>
                    <stringProp name="SUBJECT">VAR</stringProp>
                  </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute ids" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_ids</stringProp>
                    <stringProp name="RegexExtractor.regex">"attribute_id":"(\d+)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute codes" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_codes</stringProp>
                    <stringProp name="RegexExtractor.regex">"code":"(\w+)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute labels" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_labels</stringProp>
                    <stringProp name="RegexExtractor.regex">"label":"(.*?)"</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                  <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract attribute values" enabled="true">
                    <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                    <stringProp name="RegexExtractor.refname">configurable_attribute_values</stringProp>
                    <stringProp name="RegexExtractor.regex">"values":(\{(?:\}|.*?\}\}))</stringProp>
                    <stringProp name="RegexExtractor.template">$1$</stringProp>
                    <stringProp name="RegexExtractor.default"/>
                    <stringProp name="RegexExtractor.match_number">-1</stringProp>
                    <stringProp name="Sample.scope">variable</stringProp>
                    <stringProp name="Scope.variable">configurable_attributes_data</stringProp>
                  </RegexExtractor>
                  <hashTree/>
                </hashTree>
                <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach configurable attribute id" enabled="true">
                  <stringProp name="ForeachController.inputVal">configurable_attribute_ids</stringProp>
                  <stringProp name="ForeachController.returnVal">configurable_attribute_id</stringProp>
                  <boolProp name="ForeachController.useSeparator">true</boolProp>
                </ForeachController>
                <hashTree>
                  <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="Counter" enabled="true">
                    <stringProp name="CounterConfig.start">1</stringProp>
                    <stringProp name="CounterConfig.end">${configurable_attribute_ids_matchNr}</stringProp>
                    <stringProp name="CounterConfig.incr">1</stringProp>
                    <stringProp name="CounterConfig.name">attribute_counter</stringProp>
                    <stringProp name="CounterConfig.format"/>
                    <boolProp name="CounterConfig.per_user">true</boolProp>
                    <boolProp name="CounterConfig.reset_on_tg_iteration">true</boolProp>
                  </CounterConfig>
                  <hashTree/>
                  <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Process configurable attribute values" enabled="true">
                    <stringProp name="BeanShellSampler.query">return vars.get("configurable_attribute_values_" + vars.get("attribute_counter"));</stringProp>
                    <stringProp name="BeanShellSampler.filename"/>
                    <stringProp name="BeanShellSampler.parameters"/>
                    <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
                  </BeanShellSampler>
                  <hashTree>
                    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Exctract attribute values" enabled="true">
                      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
                      <stringProp name="RegexExtractor.refname">attribute_${configurable_attribute_id}_values</stringProp>
                      <stringProp name="RegexExtractor.regex">"value_index":"(\d+)"</stringProp>
                      <stringProp name="RegexExtractor.template">$1$</stringProp>
                      <stringProp name="RegexExtractor.default"/>
                      <stringProp name="RegexExtractor.match_number">-1</stringProp>
                      <stringProp name="Scope.variable">configurable_attribute_values_${attribute_counter}</stringProp>
                    </RegexExtractor>
                    <hashTree/>
                  </hashTree>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Configurable Product Validate" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">3</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${category_additional}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Configurable product description ${configurable_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_attribute_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variation]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[visibility]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">4</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[visibility]</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">true</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">50</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][type_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">configurable</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][type_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/validate/id/${configurable_product_id}/</stringProp>
                  <stringProp name="HTTPSampler.method">POST</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Configure product options" enabled="true">
                    <boolProp name="resetInterpreter">false</boolProp>
                    <stringProp name="parameters"/>
                    <stringProp name="filename"/>
                    <stringProp name="script">try {
    	int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr"));
    	for (int i = 1; i &lt;= attributesCount; i++) {
    		attributeId = vars.get("configurable_attribute_ids_" + i.toString());
    		attributeCode = vars.get("configurable_attribute_codes_" + i.toString());
    		attributeLabel = vars.get("configurable_attribute_labels_" + i.toString());
    		ctx.getCurrentSampler().addArgument("attributes[" + (i - 1).toString() + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("attribute_codes[" + (i - 1).toString() + "]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[" + attributeCode + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][position]", (i - 1).toString());
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attributeLabel);

    		int valuesCount = Integer.parseInt(vars.get("attribute_" + attributeId + "_values_matchNr"));
    		for (int j = 1; j &lt;= valuesCount; j++) {
    			attributeValue = vars.get("attribute_" + attributeId + "_values_" + j.toString());
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][include]",
    				"1"
    			);
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][value_index]",
    				attributeValue
    			);
    		}
    	}
    	ctx.getCurrentSampler().addArgument("associated_product_ids_serialized", vars.get("associated_products_ids").toString());
    } catch (Exception e) {
        log.error("error???", e);
    }</stringProp>
                  </BeanShellPreProcessor>
                  <hashTree/>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="1853918323">{"error":false}</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                  </ResponseAssertion>
                  <hashTree/>
                </hashTree>
                <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Configurable Product Save" enabled="true">
                  <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments">
                      <elementProp name="ajax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">ajax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="isAjax" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">true</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">isAjax</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="form_key" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${admin_form_key}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">form_key</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[name]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[name]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[sku]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_sku}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[sku]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[tax_class_id]admin" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[tax_class_id]admin</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[quantity_and_stock_status][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[quantity_and_stock_status][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">3</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[weight]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_category_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[category_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${category_additional}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[category_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">&lt;p&gt;Configurable product description ${configurable_product_id} Edited&lt;/p&gt;</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[status]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[status]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_title]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Title Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_title]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_keyword]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Keyword Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_keyword]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[meta_description]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name} Meta Description Edited</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[meta_description]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[website_ids][]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[website_ids][]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_price]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${special_price_new}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_price]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_from_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_from_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[special_to_date]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[special_to_date]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[cost]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[cost]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_manage_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_manage_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_min_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_min_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_max_sale_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_max_sale_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_qty_decimal]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_qty_decimal]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_decimal_divided]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_decimal_divided]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_backorders]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_backorders]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_notify_stock_qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_notify_stock_qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][enable_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][enable_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">0</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][use_config_qty_increments]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][use_config_qty_increments]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][is_in_stock]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][is_in_stock]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_from]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_from]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_design_to]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_design_to]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[custom_layout_update]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[custom_layout_update]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[page_layout]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value"/>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[page_layout]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[options_container]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">container2</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[options_container]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[configurable_variation]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_attribute_id}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[configurable_variation]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[url_key]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">${configurable_product_name}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[url_key]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_message_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_message_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[use_config_gift_wrapping_available]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[use_config_gift_wrapping_available]</stringProp>
                      </elementProp>
                      <elementProp name="product[visibility]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">4</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[visibility]</stringProp>
                      </elementProp>
                      <elementProp name="product[product_has_weight]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">1</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[product_has_weight]</stringProp>
                        <stringProp name="Argument.desc">true</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][qty]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">50</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][qty]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                      <elementProp name="product[stock_data][type_id]" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">true</boolProp>
                        <stringProp name="Argument.value">configurable</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                        <boolProp name="HTTPArgument.use_equals">true</boolProp>
                        <stringProp name="Argument.name">product[stock_data][type_id]</stringProp>
                        <stringProp name="Argument.desc">false</stringProp>
                      </elementProp>
                    </collectionProp>
                  </elementProp>
                  <stringProp name="HTTPSampler.domain"/>
                  <stringProp name="HTTPSampler.port"/>
                  <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
                  <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
                  <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                  <stringProp name="HTTPSampler.contentEncoding"/>
                  <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/product/save/id/${configurable_product_id}/back/edit/active_tab/product-details/</stringProp>
                  <stringProp name="HTTPSampler.method">POST</stringProp>
                  <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                  <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                  <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                  <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                  <boolProp name="HTTPSampler.monitor">false</boolProp>
                  <stringProp name="HTTPSampler.embedded_url_re"/>
                </HTTPSamplerProxy>
                <hashTree>
                  <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Configure product options" enabled="true">
                    <boolProp name="resetInterpreter">false</boolProp>
                    <stringProp name="parameters"/>
                    <stringProp name="filename"/>
                    <stringProp name="script">try {
    	int attributesCount = Integer.parseInt(vars.get("configurable_attribute_ids_matchNr"));
    	for (int i = 1; i &lt;= attributesCount; i++) {
    		attributeId = vars.get("configurable_attribute_ids_" + i.toString());
    		attributeCode = vars.get("configurable_attribute_codes_" + i.toString());
    		attributeLabel = vars.get("configurable_attribute_labels_" + i.toString());
    		ctx.getCurrentSampler().addArgument("attributes[" + (i - 1).toString() + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("attribute_codes[" + (i - 1).toString() + "]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[" + attributeCode + "]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][attribute_id]", attributeId);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][position]", (i - 1).toString());
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][code]", attributeCode);
    		ctx.getCurrentSampler().addArgument("product[configurable_attributes_data][" + attributeId + "][label]", attributeLabel);

    		int valuesCount = Integer.parseInt(vars.get("attribute_" + attributeId + "_values_matchNr"));
    		for (int j = 1; j &lt;= valuesCount; j++) {
    			attributeValue = vars.get("attribute_" + attributeId + "_values_" + j.toString());
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][include]",
    				"1"
    			);
    			ctx.getCurrentSampler().addArgument(
    				"product[configurable_attributes_data][" + attributeId + "][values][" + attributeValue + "][value_index]",
    				attributeValue
    			);
    		}
    	}
    	ctx.getCurrentSampler().addArgument("associated_product_ids_serialized", vars.get("associated_products_ids").toString());
    } catch (Exception e) {
        log.error("error???", e);
    }</stringProp>
                  </BeanShellPreProcessor>
                  <hashTree/>
                  <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                      <stringProp name="-583471546">You saved the product</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">2</intProp>
                    <stringProp name="TestPlan.comments"> if have trouble see messages-message-error </stringProp>
                  </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Admin Returns Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminReturnsManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Admin Returns Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Orders page" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/orders_page.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1204796042">Create New Order</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">desc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
        </elementProp>
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/open_orders.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1637639774">totalRecords</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Pending Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
        </elementProp>
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">asc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/search_orders.jmx</stringProp></HTTPSamplerProxy>
<hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">totalRecords</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order numbers" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_numbers</stringProp>
        <stringProp name="RegexExtractor.regex">\"increment_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order ids" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_ids</stringProp>
        <stringProp name="RegexExtractor.regex">\"entity_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>

      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Generate Unique Ids for each Thread" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
  import java.util.ArrayList;
  import java.util.HashMap;
  import org.apache.jmeter.protocol.http.util.Base64Encoder;
  import java.util.Random;

  // get count of "order_numbers" variable defined in "Search Pending Orders Limit"
  int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr"));


  int clusterLength;
  int threadsNumber = ctx.getThreadGroup().getNumThreads();
  if (threadsNumber == 0) {
      //Number of orders for one thread
      clusterLength = ordersCount;
  } else {
      clusterLength = Math.round(ordersCount / threadsNumber);
      if (clusterLength == 0) {
          clusterLength = 1;
      }
  }

  //Current thread number starts from 0
  int currentThreadNum = ctx.getThreadNum();

  //Index of the current product from the cluster
  Random random = new Random();
  if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
  }
  int iterator = random.nextInt(clusterLength);
  if (iterator == 0) {
  	iterator = 1;
  }

  int i = clusterLength * currentThreadNum + iterator;

  orderNumber = vars.get("order_numbers_" + i.toString());
  orderId = vars.get("order_ids_" + i.toString());
  vars.put("order_number", orderNumber);
  vars.put("order_id", orderId);

  </stringProp>
    <stringProp name="BeanShellSampler.filename"/>
    <stringProp name="BeanShellSampler.parameters"/>
    <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
  </BeanShellSampler>
  <hashTree/>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Order" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/view/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/open_order.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="2103620713">#${order_number}</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order status" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">order_status</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;span id="order_status"&gt;([^&lt;]+)&lt;/span&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
      <stringProp name="IfController.condition">"${order_status}" == "Pending"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/if_controller.jmx</stringProp></IfController>
    <hashTree>
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Start" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/invoice_start.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="-1233850814">Invoice Totals</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract ordered items ids" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">item_ids</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;div id="order_item_(\d+)_title"\s*class="product-title"&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">-1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Submit" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_1}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_1}]</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_2}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_2}]</stringProp>
        </elementProp>
        <elementProp name="invoice[comment_text]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">Invoiced</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[comment_text]</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">POST</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1740524604">The invoice has been created</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Credit Memo Start" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_creditmemo/start/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/credit_memo_start.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1382627322">New Memo</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Credit Memo Submit - Full Refund" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="creditmemo[items][${item_ids_1}][qty]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[items][${item_ids_1}][qty]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[items][${item_ids_2}][qty]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[items][${item_ids_2}][qty]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[do_offline]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[do_offline]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[comment_text]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">Credit Memo added</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[comment_text]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[shipping_amount]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">10</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[shipping_amount]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[adjustment_positive]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">0</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[adjustment_positive]</stringProp>
        </elementProp>
        <elementProp name="creditmemo[adjustment_negative]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">0</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">creditmemo[adjustment_negative]</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_creditmemo/save/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">POST</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/credit_memo_full_refund.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-515117447">You created the credit memo</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
    <hashTree/>
  </hashTree>

    <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Create/Process Returns - Pause" enabled="true">
      <intProp name="ActionProcessor.action">1</intProp>
      <intProp name="ActionProcessor.target">0</intProp>
      <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCreateProcessReturnsDelay}*1000))}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/pause.jmx</stringProp></TestAction>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Admin Browse Customer Grid" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminBrowseCustomerGridPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Admin Browse Customer Grid");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="script">
        vars.put("gridEntityType" , "Customer");

        pagesCount = parseInt(vars.get("customers_page_size")) || 20;
        vars.put("grid_entity_page_size" , pagesCount);
        vars.put("grid_namespace" , "customer_listing");
        vars.put("grid_admin_browse_filter_text" , vars.get("admin_browse_customer_filter_text"));
        vars.put("grid_filter_field", "name");

        // set sort fields and sort directions
        vars.put("grid_sort_field_1", "name");
        vars.put("grid_sort_field_2", "group_id");
        vars.put("grid_sort_field_3", "billing_country_id");
        vars.put("grid_sort_order_1", "asc");
        vars.put("grid_sort_order_2", "desc");
      </stringProp>
      <stringProp name="scriptLanguage">javascript</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_browse_customers_grid/setup.jmx</stringProp></JSR223PostProcessor>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} pages count" enabled="true">
        <stringProp name="cacheKey"/>
        <stringProp name="filename"/>
        <stringProp name="parameters"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
          var totalsRecord = parseInt(vars.get("entity_total_records"));
          var pageCount = Math.round(totalsRecord/pageSize);

          vars.put("grid_pages_count", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Set ${gridEntityType} Filtered Pages Count" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/set_filtered_pages_count.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert total records is not 0" enabled="true">
        <stringProp name="JSON_PATH">$.totalRecords</stringProp>
        <stringProp name="EXPECTED_VALUE">0</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">true</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total records" enabled="true">
        <stringProp name="VAR">entity_total_records</stringProp>
        <stringProp name="JSONPATH">$.totalRecords</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="SetUp - Calculate ${gridEntityType} filtered pages count" enabled="true">
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
          var pageSize = parseInt(vars.get("grid_entity_page_size")) || 20;
var totalsRecord = parseInt(vars.get("entity_total_records"));
var pageCount = Math.round(totalsRecord/pageSize);

vars.put("grid_pages_count_filtered", pageCount);
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
      </JSR223PostProcessor>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="namespace" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_namespace}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">namespace</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="search" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">search</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="filters[placeholder]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">filters[placeholder]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[pageSize]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="paging[current]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${page_number}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">paging[current]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">entity_id</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[field]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="sorting[direction]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">asc</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">sorting[direction]</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="isAjax" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">isAjax</stringProp>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <CounterConfig guiclass="CounterConfigGui" testclass="CounterConfig" testname="SetUp - Select Filtered ${gridEntityType} Page Number" enabled="true">
      <stringProp name="CounterConfig.start">1</stringProp>
      <stringProp name="CounterConfig.end">${grid_pages_count_filtered}</stringProp>
      <stringProp name="CounterConfig.incr">1</stringProp>
      <stringProp name="CounterConfig.name">page_number</stringProp>
      <stringProp name="CounterConfig.format"/>
      <boolProp name="CounterConfig.per_user">true</boolProp>
      <boolProp name="CounterConfig.reset_on_tg_iteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/select_filtered_page_number.jmx</stringProp></CounterConfig>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="View ${gridEntityType} page - Filtering + Sorting" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_grid_browsing/admin_browse_grid_sort_and_filter.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Field Defined" enabled="true">
        <stringProp name="ForeachController.inputVal">grid_sort_field</stringProp>
        <stringProp name="ForeachController.returnVal">grid_sort_field</stringProp>
        <boolProp name="ForeachController.useSeparator">true</boolProp>
        <stringProp name="ForeachController.startIndex">0</stringProp>
        <stringProp name="ForeachController.endIndex">3</stringProp>
      </ForeachController>
      <hashTree>
        <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Sort Order Defined" enabled="true">
          <stringProp name="ForeachController.inputVal">grid_sort_order</stringProp>
          <stringProp name="ForeachController.returnVal">grid_sort_order</stringProp>
          <boolProp name="ForeachController.useSeparator">true</boolProp>
          <stringProp name="ForeachController.startIndex">0</stringProp>
          <stringProp name="ForeachController.endIndex">2</stringProp>
        </ForeachController>
        <hashTree>
          <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="View ${gridEntityType} page - Filtering + Sort By ${grid_sort_field} ${grid_sort_order}" enabled="true">
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
              <collectionProp name="Arguments.arguments">
                <elementProp name="namespace" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_namespace}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">namespace</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[${grid_filter_field}]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_admin_browse_filter_text}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[${grid_filter_field}]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="filters[placeholder]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">filters[placeholder]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[pageSize]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_entity_page_size}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[pageSize]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="paging[current]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${page_number}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">paging[current]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[field]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_field}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[field]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="sorting[direction]" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">${grid_sort_order}</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">sorting[direction]</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
                <elementProp name="isAjax" elementType="HTTPArgument">
                  <boolProp name="HTTPArgument.always_encode">true</boolProp>
                  <stringProp name="Argument.value">true</stringProp>
                  <stringProp name="Argument.metadata">=</stringProp>
                  <boolProp name="HTTPArgument.use_equals">true</boolProp>
                  <stringProp name="Argument.name">isAjax</stringProp>
                  <stringProp name="Argument.desc">false</stringProp>
                </elementProp>
              </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
            <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
            <stringProp name="HTTPSampler.method">GET</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
          </HTTPSamplerProxy>
          <hashTree>
            <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
              <collectionProp name="Asserion.test_strings">
                <stringProp name="1637639774">\"totalRecords\":[^0]\d*</stringProp>
              </collectionProp>
              <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
              <boolProp name="Assertion.assume_success">false</boolProp>
              <intProp name="Assertion.test_type">2</intProp>
            </ResponseAssertion>
            <hashTree/>
          </hashTree>
        </hashTree>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Admin Create Order" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminCreateOrderPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Admin Create Order");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Get region data" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">
      vars.put("alabama_region_id", props.get("alabama_region_id"));
      vars.put("california_region_id", props.get("california_region_id"));
</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/get_region_data.jmx</stringProp></JSR223PreProcessor>
    <hashTree/>
  
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Create Order" enabled="true"/>
    <hashTree>
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_order/admin_create_order.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">import org.apache.jmeter.samplers.SampleResult;
import java.util.Random;
Random random = new Random();

if (${seedForRandom} &gt; 0) {
  random.setSeed(${seedForRandom});
}

number = random.nextInt(props.get("configurable_products_list").size());
configurableList = props.get("configurable_products_list").get(number);
vars.put("configurable_product_1_url_key", configurableList.get("url_key"));
vars.put("configurable_product_1_name", configurableList.get("title"));
vars.put("configurable_product_1_id", configurableList.get("id"));
vars.put("configurable_product_1_sku", configurableList.get("sku"));
vars.put("configurable_attribute_id", configurableList.get("attribute_id"));
vars.put("configurable_option_id", configurableList.get("attribute_option_id"));

number = random.nextInt(props.get("simple_products_list").size());
simpleList = props.get("simple_products_list").get(number);
vars.put("simple_product_1_url_key", simpleList.get("url_key"));
vars.put("simple_product_1_name", simpleList.get("title"));
vars.put("simple_product_1_id", simpleList.get("id"));

number1 = random.nextInt(props.get("configurable_products_list").size());
do {
    number1 = random.nextInt(props.get("simple_products_list").size());
} while(number == number1);
simpleList = props.get("simple_products_list").get(number1);
vars.put("simple_product_2_url_key", simpleList.get("url_key"));
vars.put("simple_product_2_name", simpleList.get("title"));
vars.put("simple_product_2_id", simpleList.get("id"));


customers_index = 0;
if (!props.containsKey("customer_ids_index")) {
	props.put("customer_ids_index", customers_index);
}

try {
	customers_index = props.get("customer_ids_index");
	customers_list = props.get("customer_ids_list");

	if (customers_index == customers_list.size()) {
		customers_index=0;
	}
	vars.put("customer_id", customers_list.get(customers_index));
	props.put("customer_ids_index", ++customers_index);
}
catch (java.lang.Exception e) {
	   log.error("Caught Exception in 'Admin Create Order' thread.");
	   SampleResult.setStopThread(true);
}</stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Start Order" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/start/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree/>
      <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="SetUp - Get Configurable Product Options" enabled="true"/>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">Content-Type</stringProp>
              <stringProp name="Header.value">application/json</stringProp>
            </elementProp>
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">*/*</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
          <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
            <collectionProp name="Arguments.arguments">
              <elementProp name="" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">false</boolProp>
                <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
          <stringProp name="HTTPSampler.method">POST</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
            <stringProp name="VAR">admin_token</stringProp>
            <stringProp name="JSONPATH">$</stringProp>
            <stringProp name="DEFAULT"/>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="484395188">^.{10,}$</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">1</intProp>
            <stringProp name="Assertion.scope">variable</stringProp>
            <stringProp name="Scope.variable">admin_token</stringProp>
          </ResponseAssertion>
          <hashTree/>
        </hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">Authorization</stringProp>
              <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Get Configurable Product Options" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments"/>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}rest/V1/configurable-products/${configurable_product_1_sku}/options/all</stringProp>
          <stringProp name="HTTPSampler.method">GET</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract attribute_ids" enabled="true">
            <stringProp name="VAR">attribute_ids</stringProp>
            <stringProp name="JSONPATH">$.[*].attribute_id</stringProp>
            <stringProp name="DEFAULT">NO_VALUE</stringProp>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
          <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="JSON Path Extractor: Extract option_values" enabled="true">
            <stringProp name="VAR">option_values</stringProp>
            <stringProp name="JSONPATH">$.[*].values[0].value_index</stringProp>
            <stringProp name="DEFAULT">NO_VALUE</stringProp>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
          </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
          <hashTree/>
        </hashTree>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Products" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="item[${simple_product_1_id}][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">item[${simple_product_1_id}][qty]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="item[${simple_product_2_id}][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">item[${simple_product_2_id}][qty]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="item[${configurable_product_1_id}][qty]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">item[${configurable_product_1_id}][qty]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="customer_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">customer_id</stringProp>
              <stringProp name="Argument.value">${customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="store_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">store_id</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="currency_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">currency_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="payment[method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">payment[method]</stringProp>
              <stringProp name="Argument.value">checkmo</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="reset_shipping" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">reset_shipping</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="json" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">json</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="as_js_varname" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">as_js_varname</stringProp>
              <stringProp name="Argument.value">iFrameResponse</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/loadBlock/block/search,items,shipping_method,totals,giftmessage,billing_method?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Configure product options" enabled="true">
          <boolProp name="resetInterpreter">false</boolProp>
          <stringProp name="parameters"/>
          <stringProp name="filename"/>
          <stringProp name="script">try {
	attribute_ids = vars.get("attribute_ids");
	option_values = vars.get("option_values");
	attribute_ids = attribute_ids.replace("[","").replace("]","").replace("\"", "");
	option_values = option_values.replace("[","").replace("]","").replace("\"", "");
	attribute_ids_array = attribute_ids.split(",");
	option_values_array = option_values.split(",");
	args = ctx.getCurrentSampler().getArguments();
	it = args.iterator();
	while (it.hasNext()) {
	    argument = it.next();
	    if (argument.getStringValue().contains("${")) {
	        args.removeArgument(argument.getName());
	    }
	}
	for (int i = 0; i &lt; attribute_ids_array.length; i++) {

    ctx.getCurrentSampler().addArgument("item[" + vars.get("configurable_product_1_id") + "][super_attribute][" + attribute_ids_array[i] + "]", option_values_array[i]);
	}
} catch (Exception e) {
    log.error("error???", e);
}</stringProp>
        </BeanShellPreProcessor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Collect Shipping Rates" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="collect_shipping_rates" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">collect_shipping_rates</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="customer_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">customer_id</stringProp>
              <stringProp name="Argument.value">${customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="store_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">store_id</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="currency_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">currency_id</stringProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="payment[method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">payment[method]</stringProp>
              <stringProp name="Argument.value">checkmo</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="json" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">json</stringProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/loadBlock/block/shipping_method,totals?isAjax=true</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Shipping Method" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1987784558">shipping_method</stringProp>
            <stringProp name="818779431">Flat Rate</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Filled Order Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/index/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Filled Order Page" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-37823069">Select from existing customer addresses</stringProp>
            <stringProp name="-13185722">Submit Order</stringProp>
            <stringProp name="-209419315">Items Ordered</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save Order" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="limit" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">limit</stringProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="entity_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">entity_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="email" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">email</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="Telephone" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">Telephone</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="billing_postcode" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">billing_postcode</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="billing_country_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">billing_country_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="billing_regione" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">billing_regione</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="store_name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">store_name</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="page" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">page</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[currency]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[currency]</stringProp>
              <stringProp name="Argument.value">USD</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="sku" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">sku</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="qty" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">qty</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="limit" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">limit</stringProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="entity_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">entity_id</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="sku" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">sku</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="price[from]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">price[from]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="price[to]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">price[to]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="in_products" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">in_products</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="page" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">page</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="coupon_code" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">coupon_code</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[account][group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[account][group_id]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[account][email]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[account][email]</stringProp>
              <stringProp name="Argument.value">user_${customer_id}@example.com</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][customer_address_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][customer_address_id]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][prefix]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][firstname]</stringProp>
              <stringProp name="Argument.value">Anthony</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][middlename]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][lastname]</stringProp>
              <stringProp name="Argument.value">Nealy</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][suffix]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][company]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][street][0]</stringProp>
              <stringProp name="Argument.value">123 Freedom Blvd. #123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][street][1]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][city]</stringProp>
              <stringProp name="Argument.value">Fayetteville</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][country_id]</stringProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][region]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][region_id]</stringProp>
              <stringProp name="Argument.value">${alabama_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][postcode]</stringProp>
              <stringProp name="Argument.value">123123</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][telephone]</stringProp>
              <stringProp name="Argument.value">022-333-4455</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][fax]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][fax]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[billing_address][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[billing_address][vat_id]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipping_same_as_billing" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipping_same_as_billing</stringProp>
              <stringProp name="Argument.value">on</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="payment[method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">payment[method]</stringProp>
              <stringProp name="Argument.value">checkmo</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[shipping_method]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[shipping_method]</stringProp>
              <stringProp name="Argument.value">flatrate_flatrate</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[comment][customer_note]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[comment][customer_note]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[comment][customer_note_notify]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[comment][customer_note_notify]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="order[send_confirmation]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">order[send_confirmation]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_create/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_id</stringProp>
          <stringProp name="RegexExtractor.regex">${host}${base_path}${admin_path}/sales/order/index/order_id/(\d+)/</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Item 1" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_item_1</stringProp>
          <stringProp name="RegexExtractor.regex">order_item_(\d+)_title</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Item 2" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_item_2</stringProp>
          <stringProp name="RegexExtractor.regex">order_item_(\d+)_title</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">2</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract Order Item 3" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">order_item_3</stringProp>
          <stringProp name="RegexExtractor.regex">order_item_(\d+)_title</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">3</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Item 1" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_item_1</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Item 2" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_item_2</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Item 3" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">order_item_3</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Order Created" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="563107624">You created the order.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save Invoice" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[items][${order_item_1}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[items][${order_item_1}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[items][${order_item_2}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[items][${order_item_2}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[items][${order_item_3}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[items][${order_item_3}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="invoice[comment_text]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">invoice[comment_text]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Invoice Created" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1878312078">The invoice has been created.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save Shipment" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[items][${order_item_1}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[items][${order_item_1}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[items][${order_item_2}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[items][${order_item_2}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[items][${order_item_3}]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[items][${order_item_3}]</stringProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
            <elementProp name="shipment[comment_text]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.name">shipment[comment_text]</stringProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Detected the start of a redirect chain</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Shipment Created" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-348539683">The shipment has been created.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Admin Category Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminCategoryManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Admin Category Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Category Management" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_category_management/admin_category_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
         <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = new java.util.Random();
if (${seedForRandom} &gt; 0) {
random.setSeed(${seedForRandom} + ${__threadNum});
}

/**
 * Get unique ids for fix concurrent category saving
 */
function getNextProductNumber(i) {
    number = productsVariationsSize * ${__threadNum} - i;
    if (number &gt;= productsSize) {
        log.info("${testLabel}: capacity of product list is not enough for support all ${adminPoolUsers} threads");
        return random.nextInt(productsSize);
    }
    return productsVariationsSize * ${__threadNum} - i;
}

var productsVariationsSize = 5,
    productsSize = props.get("simple_products_list_for_edit").size();


for (i = 1; i&lt;= productsVariationsSize; i++) {
    var productVariablePrefix = "simple_product_" + i + "_";
    number = getNextProductNumber(i);
    simpleList = props.get("simple_products_list_for_edit").get(number);

    vars.put(productVariablePrefix + "url_key", simpleList.get("url_key"));
    vars.put(productVariablePrefix + "id", simpleList.get("id"));
    vars.put(productVariablePrefix + "name", simpleList.get("title"));
}

categoryIndex = random.nextInt(props.get("admin_category_ids_list").size());
vars.put("parent_category_id", props.get("admin_category_ids_list").get(categoryIndex));
do {
categoryIndexNew = random.nextInt(props.get("admin_category_ids_list").size());
} while(categoryIndex == categoryIndexNew);
vars.put("new_parent_category_id", props.get("admin_category_ids_list").get(categoryIndexNew));</stringProp>
    </JSR223Sampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
          <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Select parent category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/edit/id/${parent_category_id}/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open new category page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/add/store/0/parent/${parent_category_id}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1903925024">&lt;title&gt;New Category</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">id</stringProp>
            </elementProp>
            <elementProp name="parent" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${parent_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">parent</stringProp>
            </elementProp>
            <elementProp name="path" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">path</stringProp>
            </elementProp>
            <elementProp name="store_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_id</stringProp>
            </elementProp>
            <elementProp name="is_active" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_active</stringProp>
            </elementProp>
            <elementProp name="include_in_menu" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">include_in_menu</stringProp>
            </elementProp>
            <elementProp name="is_anchor" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_anchor</stringProp>
            </elementProp>
            <elementProp name="use_config[available_sort_by]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_config[available_sort_by]</stringProp>
            </elementProp>
            <elementProp name="use_config[default_sort_by]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_config[default_sort_by]</stringProp>
            </elementProp>
            <elementProp name="use_config[filter_price_range]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_config[filter_price_range]</stringProp>
            </elementProp>
            <elementProp name="use_default[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_default[url_key]</stringProp>
            </elementProp>
            <elementProp name="url_key_create_redirect" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">url_key_create_redirect</stringProp>
            </elementProp>
            <elementProp name="custom_use_parent_settings" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">custom_use_parent_settings</stringProp>
            </elementProp>
            <elementProp name="custom_apply_to_products" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">custom_apply_to_products</stringProp>
            </elementProp>
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Admin Category Management ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
            </elementProp>
            <elementProp name="url_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">admin-category-management-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">url_key</stringProp>
            </elementProp>
            <elementProp name="meta_title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_title</stringProp>
            </elementProp>
            <elementProp name="description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">description</stringProp>
            </elementProp>
            <elementProp name="display_mode" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">PRODUCTS</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">display_mode</stringProp>
            </elementProp>
            <elementProp name="default_sort_by" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">position</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">default_sort_by</stringProp>
            </elementProp>
            <elementProp name="meta_keywords" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_keywords</stringProp>
            </elementProp>
            <elementProp name="meta_description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_description</stringProp>
            </elementProp>
            <elementProp name="custom_layout_update" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">custom_layout_update</stringProp>
            </elementProp>
            <elementProp name="category_products" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"${simple_product_1_id}":"","${simple_product_2_id}":"","${simple_product_3_id}":"","${simple_product_4_id}":"","${simple_product_5_id}":""}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">category_products</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">URL</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_id</stringProp>
          <stringProp name="RegexExtractor.regex">/catalog/category/edit/id/(\d+)/</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Select created category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/edit/id/${admin_category_id}/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category row id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_entity_id</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category attribute set id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_attribute_set_id</stringProp>
          <stringProp name="RegexExtractor.regex">"attribute_set_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category parent Id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_parent_id</stringProp>
          <stringProp name="RegexExtractor.regex">"parent_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category created at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_created_at</stringProp>
          <stringProp name="RegexExtractor.regex">"created_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category updated at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_updated_at</stringProp>
          <stringProp name="RegexExtractor.regex">"updated_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category path" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_path</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":(.+)"path":"([^\"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category level" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_level</stringProp>
          <stringProp name="RegexExtractor.regex">"level":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category name" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_name</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":(.+)"name":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category url key" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_url_key</stringProp>
          <stringProp name="RegexExtractor.regex">"url_key":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category url path" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_url_path</stringProp>
          <stringProp name="RegexExtractor.regex">"url_path":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category row id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_entity_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category attribute set id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_attribute_set_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category parent id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_parent_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category created at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_created_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category updated at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_updated_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category path" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="59022110">^[\d\\\/]+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_path</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category level" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_level</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category name" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_name</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category url key" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_url_key</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category url path" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_url_path</stringProp>
        </ResponseAssertion>
        <hashTree/>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert products added" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="417284990">${simple_product_1_name}</stringProp>
              <stringProp name="1304788671">${simple_product_2_name}</stringProp>
              <stringProp name="-2102674944">${simple_product_3_name}</stringProp>
              <stringProp name="-1215171263">${simple_product_4_name}</stringProp>
              <stringProp name="-327667582">${simple_product_5_name}</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">2</intProp>
          </ResponseAssertion>
          <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Move category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">id</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
            <elementProp name="point" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">append</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">point</stringProp>
            </elementProp>
            <elementProp name="pid" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${new_parent_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">pid</stringProp>
            </elementProp>
            <elementProp name="paid" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${parent_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paid</stringProp>
            </elementProp>
            <elementProp name="aid" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">aid</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/move/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Delete category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/delete/id/${admin_category_id}/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category deleted" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1277069529">You deleted the category.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCategoryManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Admin Promotion Rules" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminPromotionRulesPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Admin Promotion Rules");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Promotions Management" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_promotions_management/admin_promotions_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/new</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New Conditional" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1--1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">id</stringProp>
            </elementProp>
            <elementProp name="type" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Address|base_subtotal</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">type</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/newConditionHtml/form/sales_rule_formrule_conditions_fieldset_/form_namespace/sales_rule_form</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Rule Name ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
            </elementProp>
            <elementProp name="is_active" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_active</stringProp>
            </elementProp>
            <elementProp name="use_auto_generation" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_auto_generation</stringProp>
            </elementProp>
            <elementProp name="is_rss" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_rss</stringProp>
            </elementProp>
            <elementProp name="apply_to_shipping" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">apply_to_shipping</stringProp>
            </elementProp>
            <elementProp name="stop_rules_processing" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">stop_rules_processing</stringProp>
            </elementProp>
            <elementProp name="coupon_code" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">coupon_code</stringProp>
            </elementProp>
            <elementProp name="uses_per_coupon" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">uses_per_coupon</stringProp>
            </elementProp>
            <elementProp name="uses_per_customer" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">uses_per_customer</stringProp>
            </elementProp>
            <elementProp name="sort_order" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sort_order</stringProp>
            </elementProp>
            <elementProp name="discount_amount" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">discount_amount</stringProp>
            </elementProp>
            <elementProp name="discount_qty" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">discount_qty</stringProp>
            </elementProp>
            <elementProp name="discount_step" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">discount_step</stringProp>
            </elementProp>
            <elementProp name="reward_points_delta" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">reward_points_delta</stringProp>
            </elementProp>
            <elementProp name="store_labels[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_labels[0]</stringProp>
            </elementProp>
            <elementProp name="description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Rule Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">description</stringProp>
            </elementProp>
            <elementProp name="coupon_type" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">coupon_type</stringProp>
            </elementProp>
            <elementProp name="simple_action" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">cart_fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">simple_action</stringProp>
            </elementProp>
            <elementProp name="website_ids[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">website_ids[0]</stringProp>
            </elementProp>
            <elementProp name="customer_group_ids[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer_group_ids[0]</stringProp>
            </elementProp>
            <elementProp name="from_date" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">from_date</stringProp>
            </elementProp>
            <elementProp name="to_date" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">to_date</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Combine</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][type]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][aggregator]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">all</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][aggregator]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][value]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Address</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][type]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][attribute]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">base_subtotal</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][attribute]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][operator]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&gt;=</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][operator]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][value]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][new_chlid]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][new_chlid]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Product\Combine</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][type]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][aggregator]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">all</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][aggregator]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][value]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][new_child]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][new_child]</stringProp>
            </elementProp>
            <elementProp name="store_labels[1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_labels[1]</stringProp>
            </elementProp>
            <elementProp name="store_labels[2]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_labels[2]</stringProp>
            </elementProp>
            <elementProp name="related_banners" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">related_banners</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-396438583">You saved the rule.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminPromotionsManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Admin Customer Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminCustomerManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Admin Customer Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Customer Management" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_customer_management/admin_customer_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/customer/index</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Render" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="namespace" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">customer_listing</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">namespace</stringProp>
            </elementProp>
            <elementProp name="search" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">search</stringProp>
            </elementProp>
            <elementProp name="filters[placeholder]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">filters[placeholder]</stringProp>
            </elementProp>
            <elementProp name="paging[pageSize]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[pageSize]</stringProp>
            </elementProp>
            <elementProp name="paging[current]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[current]</stringProp>
            </elementProp>
            <elementProp name="sorting[field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">entity_id</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[field]</stringProp>
            </elementProp>
            <elementProp name="sorting[direction]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">asc</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[direction]</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">X-Requested-With</stringProp>
              <stringProp name="Header.value">XMLHttpRequest</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Render" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="namespace" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">customer_listing</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">namespace</stringProp>
            </elementProp>
            <elementProp name="search" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Lastname</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">search</stringProp>
            </elementProp>
            <elementProp name="filters[placeholder]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">filters[placeholder]</stringProp>
            </elementProp>
            <elementProp name="paging[pageSize]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[pageSize]</stringProp>
            </elementProp>
            <elementProp name="paging[current]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[current]</stringProp>
            </elementProp>
            <elementProp name="sorting[field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">entity_id</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[field]</stringProp>
            </elementProp>
            <elementProp name="sorting[direction]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">asc</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[direction]</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">X-Requested-With</stringProp>
              <stringProp name="Header.value">XMLHttpRequest</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer edit url" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">customer_edit_url_path</stringProp>
          <stringProp name="RegexExtractor.regex">actions":\{"edit":\{"href":"(?:http|https):\\/\\/(.*?)\\/customer\\/index\\/edit\\/id\\/(\d+)\\/",</stringProp>
          <stringProp name="RegexExtractor.template">/customer/index/edit/id/$2$/</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer edit url" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">customer_edit_url_path</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Customer" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}${customer_edit_url_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert edit customer page" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1422614550">Customer Information</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer entity_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_entity_id</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract website_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_website_id</stringProp>
          <stringProp name="RegexExtractor.regex">"website_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer firstname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_firstname</stringProp>
          <stringProp name="RegexExtractor.regex">"firstname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer lastname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_lastname</stringProp>
          <stringProp name="RegexExtractor.regex">"lastname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer email" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_email</stringProp>
          <stringProp name="RegexExtractor.regex">"email":"([^\@]+@[^.]+.[^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract group_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_group_id</stringProp>
          <stringProp name="RegexExtractor.regex">"group_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract store_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_store_id</stringProp>
          <stringProp name="RegexExtractor.regex">"store_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extact created_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_created_at</stringProp>
          <stringProp name="RegexExtractor.regex">"created_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract updated_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_updated_at</stringProp>
          <stringProp name="RegexExtractor.regex">"updated_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract is_active" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_is_active</stringProp>
          <stringProp name="RegexExtractor.regex">"is_active":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract disable_auto_group_change" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_disable_auto_group_change</stringProp>
          <stringProp name="RegexExtractor.regex">"disable_auto_group_change":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract created_in" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_created_in</stringProp>
          <stringProp name="RegexExtractor.regex">"created_in":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract dob" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_dob</stringProp>
          <stringProp name="RegexExtractor.regex">"dob":"(\d+)-(\d+)-(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$/$3$/$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract default_billing" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_default_billing</stringProp>
          <stringProp name="RegexExtractor.regex">"default_billing":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract default_shipping" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_default_shipping</stringProp>
          <stringProp name="RegexExtractor.regex">"default_shipping":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract gender" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_gender</stringProp>
          <stringProp name="RegexExtractor.regex">"gender":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract failures_num" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_failures_num</stringProp>
          <stringProp name="RegexExtractor.regex">"failures_num":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_entity_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_entity_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{"entity_id":"(\d+)".+?"parent_id":"${admin_customer_entity_id}"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
       <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_created_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_created_at</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"created_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_updated_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_updated_at</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"updated_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_is_active" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_is_active</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"is_active":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_city" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_city</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"city":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_country_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_country_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"country_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_firstname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_firstname</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"firstname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_lastname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_lastname</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"lastname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_postcode" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_postcode</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"postcode":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_region" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_region</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"region":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_region_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_region_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"region_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address street" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_street</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"street":\["([^"]+)"\]</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_telephone" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_telephone</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"telephone":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_customer_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_customer_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"customer_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer entity_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_entity_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert website_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_website_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer firstname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_firstname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer lastname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_lastname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer email" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_email</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer group_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_group_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer store_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_store_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer created_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_created_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer updated_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_updated_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer is_active" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_is_active</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer disable_auto_group_change" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_disable_auto_group_change</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer created_in" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_created_in</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer dob" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="221072919">^\d+/\d+/\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_dob</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer default_billing" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_default_billing</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer default_shipping" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_default_shipping</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer gender" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_gender</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer failures_num" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_failures_num</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_entity_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_entity_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_created_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_created_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_updated_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_updated_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_is_active" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_is_active</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_city" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_city</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_country_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_country_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_firstname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_firstname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_lastname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_lastname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_postcode" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_postcode</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_region" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_region</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_region_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_region_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_street" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_street</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_telephone" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_telephone</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_customer_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_customer_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Customer Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="isAjax   " elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax   </stringProp>
            </elementProp>
            <elementProp name="customer[entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[entity_id]</stringProp>
            </elementProp>
            <elementProp name="customer[website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_website_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[website_id]</stringProp>
            </elementProp>
            <elementProp name="customer[email]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_email}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[email]</stringProp>
            </elementProp>
            <elementProp name="customer[group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_group_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[group_id]</stringProp>
            </elementProp>
            <elementProp name="customer[store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[store_id]</stringProp>
            </elementProp>
            <elementProp name="customer[created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_at]</stringProp>
            </elementProp>
            <elementProp name="customer[updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[updated_at]</stringProp>
            </elementProp>
            <elementProp name="customer[is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[is_active]</stringProp>
            </elementProp>
            <elementProp name="customer[disable_auto_group_change]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_disable_auto_group_change}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[disable_auto_group_change]</stringProp>
            </elementProp>
            <elementProp name="customer[created_in]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_in}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_in]</stringProp>
            </elementProp>
            <elementProp name="customer[prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[prefix]</stringProp>
            </elementProp>
            <elementProp name="customer[firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_firstname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[firstname]</stringProp>
            </elementProp>
            <elementProp name="customer[middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[middlename]</stringProp>
            </elementProp>
            <elementProp name="customer[lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_lastname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[lastname]</stringProp>
            </elementProp>
            <elementProp name="customer[suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[suffix]</stringProp>
            </elementProp>
            <elementProp name="customer[dob]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_dob}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[dob]</stringProp>
            </elementProp>
            <elementProp name="customer[default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_billing}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_billing]</stringProp>
            </elementProp>
            <elementProp name="customer[default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_shipping}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_shipping]</stringProp>
            </elementProp>
            <elementProp name="customer[taxvat]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[taxvat]</stringProp>
            </elementProp>
            <elementProp name="customer[gender]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_gender}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[gender]</stringProp>
            </elementProp>
            <elementProp name="customer[failures_num]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_failures_num}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[failures_num]</stringProp>
            </elementProp>
            <elementProp name="customer[sendemail_store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[sendemail_store_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][entity_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][created_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][updated_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][is_active]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_city}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][city]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][company]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_country_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_firstname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_lastname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_postcode}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_street}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_telephone}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][customer_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][customer_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">John</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Doe</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Test Company</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][company]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Folsom</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][city]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">95630</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1234567890</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123 Main</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region_id]</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/customer/index/validate/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="49586">200</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Customer Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="isAjax   " elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax   </stringProp>
            </elementProp>
            <elementProp name="customer[entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[entity_id]</stringProp>
            </elementProp>
            <elementProp name="customer[website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_website_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[website_id]</stringProp>
            </elementProp>
            <elementProp name="customer[email]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_email}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[email]</stringProp>
            </elementProp>
            <elementProp name="customer[group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_group_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[group_id]</stringProp>
            </elementProp>
            <elementProp name="customer[store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[store_id]</stringProp>
            </elementProp>
            <elementProp name="customer[created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_at]</stringProp>
            </elementProp>
            <elementProp name="customer[updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[updated_at]</stringProp>
            </elementProp>
            <elementProp name="customer[is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[is_active]</stringProp>
            </elementProp>
            <elementProp name="customer[disable_auto_group_change]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_disable_auto_group_change}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[disable_auto_group_change]</stringProp>
            </elementProp>
            <elementProp name="customer[created_in]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_in}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_in]</stringProp>
            </elementProp>
            <elementProp name="customer[prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[prefix]</stringProp>
            </elementProp>
            <elementProp name="customer[firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_firstname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[firstname]</stringProp>
            </elementProp>
            <elementProp name="customer[middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[middlename]</stringProp>
            </elementProp>
            <elementProp name="customer[lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_lastname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[lastname]</stringProp>
            </elementProp>
            <elementProp name="customer[suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[suffix]</stringProp>
            </elementProp>
            <elementProp name="customer[dob]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_dob}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[dob]</stringProp>
            </elementProp>
            <elementProp name="customer[default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_billing}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_billing]</stringProp>
            </elementProp>
            <elementProp name="customer[default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_shipping}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_shipping]</stringProp>
            </elementProp>
            <elementProp name="customer[taxvat]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[taxvat]</stringProp>
            </elementProp>
            <elementProp name="customer[gender]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_gender}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[gender]</stringProp>
            </elementProp>
            <elementProp name="customer[failures_num]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_failures_num}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[failures_num]</stringProp>
            </elementProp>
            <elementProp name="customer[sendemail_store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[sendemail_store_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][entity_id]</stringProp>
            </elementProp>

            <elementProp name="address[${admin_customer_address_entity_id}][created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][created_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][updated_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][is_active]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_city}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][city]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][company]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_country_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_firstname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_lastname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_postcode}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_street}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_telephone}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][customer_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][customer_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">John</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Doe</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Test Company</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][company]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Folsom</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][city]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">95630</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1234567890</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123 Main</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">12</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region_id]</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/customer/index/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer saved" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="292987815">You saved the customer.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCustomerManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="[REST API C] Admin Edit Order" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${cAdminEditOrderPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "[REST API C] Admin Edit Order");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Orders page" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/orders_page.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1204796042">Create New Order</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">desc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
        </elementProp>
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/open_orders.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1637639774">totalRecords</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Pending Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
        </elementProp>
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">asc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/search_orders.jmx</stringProp></HTTPSamplerProxy>
<hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">totalRecords</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order numbers" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_numbers</stringProp>
        <stringProp name="RegexExtractor.regex">\"increment_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order ids" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_ids</stringProp>
        <stringProp name="RegexExtractor.regex">\"entity_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>

      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Generate Unique Ids for each Thread" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
  import java.util.ArrayList;
  import java.util.HashMap;
  import org.apache.jmeter.protocol.http.util.Base64Encoder;
  import java.util.Random;

  // get count of "order_numbers" variable defined in "Search Pending Orders Limit"
  int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr"));


  int clusterLength;
  int threadsNumber = ctx.getThreadGroup().getNumThreads();
  if (threadsNumber == 0) {
      //Number of orders for one thread
      clusterLength = ordersCount;
  } else {
      clusterLength = Math.round(ordersCount / threadsNumber);
      if (clusterLength == 0) {
          clusterLength = 1;
      }
  }

  //Current thread number starts from 0
  int currentThreadNum = ctx.getThreadNum();

  //Index of the current product from the cluster
  Random random = new Random();
  if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
  }
  int iterator = random.nextInt(clusterLength);
  if (iterator == 0) {
  	iterator = 1;
  }

  int i = clusterLength * currentThreadNum + iterator;

  orderNumber = vars.get("order_numbers_" + i.toString());
  orderId = vars.get("order_ids_" + i.toString());
  vars.put("order_number", orderNumber);
  vars.put("order_id", orderId);

  </stringProp>
    <stringProp name="BeanShellSampler.filename"/>
    <stringProp name="BeanShellSampler.parameters"/>
    <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
  </BeanShellSampler>
  <hashTree/>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Order" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/view/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/open_order.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="2103620713">#${order_number}</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order status" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">order_status</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;span id="order_status"&gt;([^&lt;]+)&lt;/span&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
      <stringProp name="IfController.condition">"${order_status}" == "Pending"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/if_controller.jmx</stringProp></IfController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Comment" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="history[status]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">pending</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">history[status]</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="history[comment]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Some text</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">history[comment]</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/addComment/order_id/${order_id}/?isAjax=true</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/add_comment.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-2089278331">Not Notified</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Start" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/invoice_start.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="-1233850814">Invoice Totals</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract ordered items ids" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">item_ids</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;div id="order_item_(\d+)_title"\s*class="product-title"&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">-1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Submit" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_1}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_1}]</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_2}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_2}]</stringProp>
        </elementProp>
        <elementProp name="invoice[comment_text]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">Invoiced</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[comment_text]</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">POST</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1740524604">The invoice has been created</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Shipment Start" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/order_shipment/start/order_id/${order_id}/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/shipment_start.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="304100442">New Shipment</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Shipment Submit" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="shipment[items][${item_ids_1}]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">shipment[items][${item_ids_1}]</stringProp>
          </elementProp>
          <elementProp name="shipment[items][${item_ids_2}]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">shipment[items][${item_ids_2}]</stringProp>
          </elementProp>
          <elementProp name="shipment[comment_text]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Shipped</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">shipment[comment_text]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/shipment_submit.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-2089453199">The shipment has been created</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  </hashTree>

    
        <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="One Thread Scenarios Pool" enabled="true">
            <stringProp name="ThreadGroup.on_sample_error">continue</stringProp>
            <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
                <boolProp name="LoopController.continue_forever">false</boolProp>
                <stringProp name="LoopController.loops">${loops}</stringProp>
            </elementProp>
            <stringProp name="ThreadGroup.num_threads">${oneThreadScenariosPoolUsers}</stringProp>
            <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
            <longProp name="ThreadGroup.start_time">1505803944000</longProp>
            <longProp name="ThreadGroup.end_time">1505803944000</longProp>
            <boolProp name="ThreadGroup.scheduler">false</boolProp>
            <stringProp name="ThreadGroup.duration"/>
            <stringProp name="ThreadGroup.delay"/>
        <stringProp name="TestPlan.comments">tool/fragments/_system/thread_group.jmx</stringProp></ThreadGroup>
        <hashTree>
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Import Products" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${importProductsPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Import Products");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">vars.put("entity", "catalog_product");
String behavior = "${adminImportProductBehavior}";
vars.put("adminImportBehavior", behavior);
String filepath = "${files_folder}${adminImportProductFilePath}";
vars.put("adminImportFilePath", filepath);  </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/import_products/setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Import Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/import/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/import.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">Import Settings</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Import Validate" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="entity" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${entity}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">entity</stringProp>
          </elementProp>
          <elementProp name="behavior" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${adminImportBehavior}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">behavior</stringProp>
          </elementProp>
          <elementProp name="validation_strategy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">validation-stop-on-errors</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">validation_strategy</stringProp>
          </elementProp>
          <elementProp name="allowed_error_count" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">allowed_error_count</stringProp>
          </elementProp>
          <elementProp name="_import_field_separator" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">,</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_import_field_separator</stringProp>
          </elementProp>
          <elementProp name="_import_multiple_value_separator" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">,</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_import_multiple_value_separator</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/import/validate</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
      <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
        <collectionProp name="HTTPFileArgs.files">
          <elementProp name="${adminImportFilePath}" elementType="HTTPFileArg">
            <stringProp name="File.path">${adminImportFilePath}</stringProp>
            <stringProp name="File.paramname">import_file</stringProp>
            <stringProp name="File.mimetype">application/vnd.ms-excel</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/import_validate.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="37280142">File is valid! To start import process</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">16</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Import Start" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="entity" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${entity}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">entity</stringProp>
          </elementProp>
          <elementProp name="behavior" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${adminImportBehavior}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">behavior</stringProp>
          </elementProp>
          <elementProp name="validation_strategy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">validation-stop-on-errors</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">validation_strategy</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="allowed_error_count" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">allowed_error_count</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="_import_field_separator" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">,</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_import_field_separator</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="_import_multiple_value_separator" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">,</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_import_multiple_value_separator</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/import/start</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
      <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
        <collectionProp name="HTTPFileArgs.files">
          <elementProp name="${adminImportFilePath}" elementType="HTTPFileArg">
            <stringProp name="File.path">${adminImportFilePath}</stringProp>
            <stringProp name="File.paramname">import_file</stringProp>
            <stringProp name="File.mimetype">application/vnd.ms-excel</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/import_save.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1731221824">Import successfully done</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">16</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Import Customers" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${importCustomersPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Import Customers");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">vars.put("entity", "customer");
String behavior = "${adminImportCustomerBehavior}";
vars.put("adminImportBehavior", behavior);
String filepath = "${files_folder}${adminImportCustomerFilePath}";
vars.put("adminImportFilePath", filepath);  </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/import_customers/setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Import Page" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/import/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/import.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert success" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1723813687">Import Settings</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Import Validate" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="entity" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${entity}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">entity</stringProp>
          </elementProp>
          <elementProp name="behavior" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${adminImportBehavior}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">behavior</stringProp>
          </elementProp>
          <elementProp name="validation_strategy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">validation-stop-on-errors</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">validation_strategy</stringProp>
          </elementProp>
          <elementProp name="allowed_error_count" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">allowed_error_count</stringProp>
          </elementProp>
          <elementProp name="_import_field_separator" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">,</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_import_field_separator</stringProp>
          </elementProp>
          <elementProp name="_import_multiple_value_separator" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">,</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_import_multiple_value_separator</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/import/validate</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
      <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
        <collectionProp name="HTTPFileArgs.files">
          <elementProp name="${adminImportFilePath}" elementType="HTTPFileArg">
            <stringProp name="File.path">${adminImportFilePath}</stringProp>
            <stringProp name="File.paramname">import_file</stringProp>
            <stringProp name="File.mimetype">application/vnd.ms-excel</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/import_validate.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="37280142">File is valid! To start import process</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">16</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Import Start" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="entity" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${entity}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">entity</stringProp>
          </elementProp>
          <elementProp name="behavior" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${adminImportBehavior}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">behavior</stringProp>
          </elementProp>
          <elementProp name="validation_strategy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">validation-stop-on-errors</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">validation_strategy</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="allowed_error_count" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">10</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">allowed_error_count</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="_import_field_separator" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">,</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_import_field_separator</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="_import_multiple_value_separator" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">,</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">_import_multiple_value_separator</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/import/start</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">HttpClient4</stringProp>
      <elementProp name="HTTPsampler.Files" elementType="HTTPFileArgs">
        <collectionProp name="HTTPFileArgs.files">
          <elementProp name="${adminImportFilePath}" elementType="HTTPFileArg">
            <stringProp name="File.path">${adminImportFilePath}</stringProp>
            <stringProp name="File.paramname">import_file</stringProp>
            <stringProp name="File.mimetype">application/vnd.ms-excel</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/import_save.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1731221824">Import successfully done</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">16</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="API" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${apiSinglePercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "API");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^.{10,}$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="API Process Orders" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">100</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "API Process Orders");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="BeanShellSampler.query">// Each thread gets an equal number of orders, based on how many orders are available.

      int ordersPerThread = 1;
      int apiProcessOrders = Integer.parseInt("${apiProcessOrders}");
      if (apiProcessOrders &gt; 0) {
        ordersPerThread = apiProcessOrders;
      }

      threadNum = ${__threadNum};
      vars.put("ordersPerThread", String.valueOf(ordersPerThread));
      vars.put("threadNum", String.valueOf(threadNum));

      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/process_orders/setup.jmx</stringProp></BeanShellSampler>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Orders" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="searchCriteria[filterGroups][0][filters][0][field]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">status</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][field]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[filterGroups][0][filters][0][value]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Pending</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[filterGroups][0][filters][0][value]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[pageSize]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${ordersPerThread}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[pageSize]</stringProp>
          </elementProp>
          <elementProp name="searchCriteria[current_page]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${threadNum}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">searchCriteria[current_page]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/orders</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/process_orders/get_orders.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract entity ids" enabled="true">
        <stringProp name="VAR">entity_ids</stringProp>
        <stringProp name="JSONPATH">$.items[*].entity_id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
    </hashTree>
  
    <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Order" enabled="true">
      <stringProp name="ForeachController.inputVal">entity_ids</stringProp>
      <stringProp name="ForeachController.returnVal">order_id</stringProp>
      <boolProp name="ForeachController.useSeparator">true</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/process_orders/for_each_order.jmx</stringProp></ForeachController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Invoice" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/order/${order_id}/invoice</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/process_orders/create_invoice.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="34237953">"\d+"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create Shipment" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/order/${order_id}/ship</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/process_orders/create_shipment.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="34237953">"\d+"</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="API Product Attribute Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">100</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "API Product Attribute Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create attribute set" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
    "attributeSet": {&#xD;
        "attribute_set_name": "new_attribute_set_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
        "sort_order": 500&#xD;
    },&#xD;
    "skeletonId": "4"&#xD;
}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attribute-sets/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/create_attribute_set.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute_set_id" enabled="true">
        <stringProp name="VAR">attribute_set_id</stringProp>
        <stringProp name="JSONPATH">$.attribute_set_id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert attribute_set_id not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">attribute_set_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create attribute group" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
    "group": {&#xD;
        "attribute_group_name": "empty_attribute_group_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
        "attribute_set_id": ${attribute_set_id}&#xD;
    }&#xD;
}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attribute-sets/groups</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/create_attribute_group.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute_group_id" enabled="true">
        <stringProp name="VAR">attribute_group_id</stringProp>
        <stringProp name="JSONPATH">$.attribute_group_id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert attribute_group_id not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">attribute_set_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create attribute" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
    "attribute": {&#xD;
        "attribute_code": "attr_code_${__time()}",&#xD;
        "frontend_labels": [&#xD;
            {&#xD;
                "store_id": 0,&#xD;
                "label": "front_lbl_${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}"&#xD;
            }&#xD;
        ],&#xD;
        "default_value": "default value",&#xD;
        "frontend_input": "textarea",&#xD;
        "is_required": 1&#xD;
    }&#xD;
}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attributes/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/create_attribute.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute_id" enabled="true">
        <stringProp name="VAR">attribute_id</stringProp>
        <stringProp name="JSONPATH">$.attribute_id</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract attribute_code" enabled="true">
        <stringProp name="VAR">attribute_code</stringProp>
        <stringProp name="JSONPATH">$.attribute_code</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert attribute_id not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="89649215">^\d+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">attribute_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert attribute_code not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2131456825">^[a-z0-9-_]+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">attribute_code</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add attribute to attribute set" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{&#xD;
    "attributeSetId": "${attribute_set_id}",&#xD;
    "attributeGroupId": "${attribute_group_id}",&#xD;
    "attributeCode": "${attribute_code}",&#xD;
    "sortOrder": 3&#xD;
}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/products/attribute-sets/attributes</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/add_attribute_to_attribute_set.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert response is not null" enabled="true">
        <stringProp name="JSON_PATH">$</stringProp>
        <stringProp name="EXPECTED_VALUE">(\d+)</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>

  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Admin Category Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${adminCategoryManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Admin Category Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Category Management" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_category_management/admin_category_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
         <JSR223Sampler guiclass="TestBeanGUI" testclass="JSR223Sampler" testname="SetUp - Set Arguments" enabled="true">
      <stringProp name="scriptLanguage">javascript</stringProp>
      <stringProp name="parameters"/>
      <stringProp name="filename"/>
      <stringProp name="cacheKey"/>
      <stringProp name="script">random = new java.util.Random();
if (${seedForRandom} &gt; 0) {
random.setSeed(${seedForRandom} + ${__threadNum});
}

/**
 * Get unique ids for fix concurrent category saving
 */
function getNextProductNumber(i) {
    number = productsVariationsSize * ${__threadNum} - i;
    if (number &gt;= productsSize) {
        log.info("${testLabel}: capacity of product list is not enough for support all ${adminPoolUsers} threads");
        return random.nextInt(productsSize);
    }
    return productsVariationsSize * ${__threadNum} - i;
}

var productsVariationsSize = 5,
    productsSize = props.get("simple_products_list_for_edit").size();


for (i = 1; i&lt;= productsVariationsSize; i++) {
    var productVariablePrefix = "simple_product_" + i + "_";
    number = getNextProductNumber(i);
    simpleList = props.get("simple_products_list_for_edit").get(number);

    vars.put(productVariablePrefix + "url_key", simpleList.get("url_key"));
    vars.put(productVariablePrefix + "id", simpleList.get("id"));
    vars.put(productVariablePrefix + "name", simpleList.get("title"));
}

categoryIndex = random.nextInt(props.get("admin_category_ids_list").size());
vars.put("parent_category_id", props.get("admin_category_ids_list").get(categoryIndex));
do {
categoryIndexNew = random.nextInt(props.get("admin_category_ids_list").size());
} while(categoryIndex == categoryIndexNew);
vars.put("new_parent_category_id", props.get("admin_category_ids_list").get(categoryIndexNew));</stringProp>
    </JSR223Sampler>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
          <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Select parent category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/edit/id/${parent_category_id}/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open new category page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/add/store/0/parent/${parent_category_id}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1903925024">&lt;title&gt;New Category</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">id</stringProp>
            </elementProp>
            <elementProp name="parent" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${parent_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">parent</stringProp>
            </elementProp>
            <elementProp name="path" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">path</stringProp>
            </elementProp>
            <elementProp name="store_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_id</stringProp>
            </elementProp>
            <elementProp name="is_active" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_active</stringProp>
            </elementProp>
            <elementProp name="include_in_menu" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">include_in_menu</stringProp>
            </elementProp>
            <elementProp name="is_anchor" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_anchor</stringProp>
            </elementProp>
            <elementProp name="use_config[available_sort_by]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_config[available_sort_by]</stringProp>
            </elementProp>
            <elementProp name="use_config[default_sort_by]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_config[default_sort_by]</stringProp>
            </elementProp>
            <elementProp name="use_config[filter_price_range]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_config[filter_price_range]</stringProp>
            </elementProp>
            <elementProp name="use_default[url_key]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_default[url_key]</stringProp>
            </elementProp>
            <elementProp name="url_key_create_redirect" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">url_key_create_redirect</stringProp>
            </elementProp>
            <elementProp name="custom_use_parent_settings" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">custom_use_parent_settings</stringProp>
            </elementProp>
            <elementProp name="custom_apply_to_products" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">custom_apply_to_products</stringProp>
            </elementProp>
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Admin Category Management ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
            </elementProp>
            <elementProp name="url_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">admin-category-management-${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">url_key</stringProp>
            </elementProp>
            <elementProp name="meta_title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_title</stringProp>
            </elementProp>
            <elementProp name="description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">description</stringProp>
            </elementProp>
            <elementProp name="display_mode" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">PRODUCTS</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">display_mode</stringProp>
            </elementProp>
            <elementProp name="default_sort_by" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">position</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">default_sort_by</stringProp>
            </elementProp>
            <elementProp name="meta_keywords" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_keywords</stringProp>
            </elementProp>
            <elementProp name="meta_description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_description</stringProp>
            </elementProp>
            <elementProp name="custom_layout_update" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">custom_layout_update</stringProp>
            </elementProp>
            <elementProp name="category_products" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"${simple_product_1_id}":"","${simple_product_2_id}":"","${simple_product_3_id}":"","${simple_product_4_id}":"","${simple_product_5_id}":""}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">category_products</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">URL</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_id</stringProp>
          <stringProp name="RegexExtractor.regex">/catalog/category/edit/id/(\d+)/</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Select created category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/edit/id/${admin_category_id}/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category row id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_entity_id</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category attribute set id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_attribute_set_id</stringProp>
          <stringProp name="RegexExtractor.regex">"attribute_set_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category parent Id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_parent_id</stringProp>
          <stringProp name="RegexExtractor.regex">"parent_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category created at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_created_at</stringProp>
          <stringProp name="RegexExtractor.regex">"created_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category updated at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_updated_at</stringProp>
          <stringProp name="RegexExtractor.regex">"updated_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category path" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_path</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":(.+)"path":"([^\"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category level" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_level</stringProp>
          <stringProp name="RegexExtractor.regex">"level":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category name" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_name</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":(.+)"name":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category url key" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_url_key</stringProp>
          <stringProp name="RegexExtractor.regex">"url_key":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract category url path" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_category_url_path</stringProp>
          <stringProp name="RegexExtractor.regex">"url_path":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category row id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_entity_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category attribute set id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_attribute_set_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category parent id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_parent_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category created at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_created_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category updated at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_updated_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category path" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="59022110">^[\d\\\/]+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_path</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category level" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_level</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category name" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_name</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category url key" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_url_key</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category url path" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_category_url_path</stringProp>
        </ResponseAssertion>
        <hashTree/>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert products added" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="417284990">${simple_product_1_name}</stringProp>
              <stringProp name="1304788671">${simple_product_2_name}</stringProp>
              <stringProp name="-2102674944">${simple_product_3_name}</stringProp>
              <stringProp name="-1215171263">${simple_product_4_name}</stringProp>
              <stringProp name="-327667582">${simple_product_5_name}</stringProp>
            </collectionProp>
            <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
            <boolProp name="Assertion.assume_success">false</boolProp>
            <intProp name="Assertion.test_type">2</intProp>
          </ResponseAssertion>
          <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Move category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">id</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
            <elementProp name="point" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">append</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">point</stringProp>
            </elementProp>
            <elementProp name="pid" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${new_parent_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">pid</stringProp>
            </elementProp>
            <elementProp name="paid" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${parent_category_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paid</stringProp>
            </elementProp>
            <elementProp name="aid" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">aid</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/move/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Delete category" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/catalog/category/delete/id/${admin_category_id}/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert category deleted" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="1277069529">You deleted the category.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCategoryManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Admin Promotion Rules" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${adminPromotionRulesPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Admin Promotion Rules");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Promotions Management" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_promotions_management/admin_promotions_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/new</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New Conditional" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
              <stringProp name="Argument.desc">true</stringProp>
            </elementProp>
            <elementProp name="id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1--1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">id</stringProp>
            </elementProp>
            <elementProp name="type" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Address|base_subtotal</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">type</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/newConditionHtml/form/sales_rule_formrule_conditions_fieldset_/form_namespace/sales_rule_form</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="name" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Rule Name ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">name</stringProp>
            </elementProp>
            <elementProp name="is_active" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_active</stringProp>
            </elementProp>
            <elementProp name="use_auto_generation" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">use_auto_generation</stringProp>
            </elementProp>
            <elementProp name="is_rss" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_rss</stringProp>
            </elementProp>
            <elementProp name="apply_to_shipping" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">apply_to_shipping</stringProp>
            </elementProp>
            <elementProp name="stop_rules_processing" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">stop_rules_processing</stringProp>
            </elementProp>
            <elementProp name="coupon_code" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">coupon_code</stringProp>
            </elementProp>
            <elementProp name="uses_per_coupon" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">uses_per_coupon</stringProp>
            </elementProp>
            <elementProp name="uses_per_customer" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">uses_per_customer</stringProp>
            </elementProp>
            <elementProp name="sort_order" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sort_order</stringProp>
            </elementProp>
            <elementProp name="discount_amount" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">5</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">discount_amount</stringProp>
            </elementProp>
            <elementProp name="discount_qty" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">discount_qty</stringProp>
            </elementProp>
            <elementProp name="discount_step" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">discount_step</stringProp>
            </elementProp>
            <elementProp name="reward_points_delta" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">reward_points_delta</stringProp>
            </elementProp>
            <elementProp name="store_labels[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_labels[0]</stringProp>
            </elementProp>
            <elementProp name="description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Rule Description ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">description</stringProp>
            </elementProp>
            <elementProp name="coupon_type" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">coupon_type</stringProp>
            </elementProp>
            <elementProp name="simple_action" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">cart_fixed</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">simple_action</stringProp>
            </elementProp>
            <elementProp name="website_ids[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">website_ids[0]</stringProp>
            </elementProp>
            <elementProp name="customer_group_ids[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer_group_ids[0]</stringProp>
            </elementProp>
            <elementProp name="from_date" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">from_date</stringProp>
            </elementProp>
            <elementProp name="to_date" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">to_date</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Combine</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][type]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][aggregator]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">all</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][aggregator]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][value]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Address</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][type]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][attribute]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">base_subtotal</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][attribute]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][operator]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&gt;=</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][operator]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1--1][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">100</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1--1][value]</stringProp>
            </elementProp>
            <elementProp name="rule[conditions][1][new_chlid]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[conditions][1][new_chlid]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][type]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Magento\SalesRule\Model\Rule\Condition\Product\Combine</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][type]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][aggregator]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">all</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][aggregator]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][value]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][value]</stringProp>
            </elementProp>
            <elementProp name="rule[actions][1][new_child]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">rule[actions][1][new_child]</stringProp>
            </elementProp>
            <elementProp name="store_labels[1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_labels[1]</stringProp>
            </elementProp>
            <elementProp name="store_labels[2]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_labels[2]</stringProp>
            </elementProp>
            <elementProp name="related_banners" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">related_banners</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales_rule/promo_quote/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-396438583">You saved the rule.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminPromotionsManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Admin Customer Management" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${adminCustomerManagementPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Admin Customer Management");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <TestFragmentController guiclass="TestFragmentControllerGui" testclass="TestFragmentController" testname="Admin Customer Management" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_customer_management/admin_customer_management.jmx</stringProp>
</TestFragmentController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Landing Page" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/customer/index</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Render" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="namespace" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">customer_listing</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">namespace</stringProp>
            </elementProp>
            <elementProp name="search" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">search</stringProp>
            </elementProp>
            <elementProp name="filters[placeholder]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">filters[placeholder]</stringProp>
            </elementProp>
            <elementProp name="paging[pageSize]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[pageSize]</stringProp>
            </elementProp>
            <elementProp name="paging[current]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[current]</stringProp>
            </elementProp>
            <elementProp name="sorting[field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">entity_id</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[field]</stringProp>
            </elementProp>
            <elementProp name="sorting[direction]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">asc</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[direction]</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">X-Requested-With</stringProp>
              <stringProp name="Header.value">XMLHttpRequest</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Render" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="namespace" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">customer_listing</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">namespace</stringProp>
            </elementProp>
            <elementProp name="search" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Lastname</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">search</stringProp>
            </elementProp>
            <elementProp name="filters[placeholder]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">filters[placeholder]</stringProp>
            </elementProp>
            <elementProp name="paging[pageSize]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">20</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[pageSize]</stringProp>
            </elementProp>
            <elementProp name="paging[current]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">paging[current]</stringProp>
            </elementProp>
            <elementProp name="sorting[field]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">entity_id</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[field]</stringProp>
            </elementProp>
            <elementProp name="sorting[direction]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">asc</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">sorting[direction]</stringProp>
            </elementProp>
            <elementProp name="isAjax" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="" elementType="Header">
              <stringProp name="Header.name">X-Requested-With</stringProp>
              <stringProp name="Header.value">XMLHttpRequest</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer edit url" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">customer_edit_url_path</stringProp>
          <stringProp name="RegexExtractor.regex">actions":\{"edit":\{"href":"(?:http|https):\\/\\/(.*?)\\/customer\\/index\\/edit\\/id\\/(\d+)\\/",</stringProp>
          <stringProp name="RegexExtractor.template">/customer/index/edit/id/$2$/</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer edit url" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">customer_edit_url_path</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Edit Customer" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}${customer_edit_url_path}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert edit customer page" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-1422614550">Customer Information</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer entity_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_entity_id</stringProp>
          <stringProp name="RegexExtractor.regex">"entity_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract website_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_website_id</stringProp>
          <stringProp name="RegexExtractor.regex">"website_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer firstname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_firstname</stringProp>
          <stringProp name="RegexExtractor.regex">"firstname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer lastname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_lastname</stringProp>
          <stringProp name="RegexExtractor.regex">"lastname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer email" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_email</stringProp>
          <stringProp name="RegexExtractor.regex">"email":"([^\@]+@[^.]+.[^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract group_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_group_id</stringProp>
          <stringProp name="RegexExtractor.regex">"group_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract store_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_store_id</stringProp>
          <stringProp name="RegexExtractor.regex">"store_id":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extact created_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_created_at</stringProp>
          <stringProp name="RegexExtractor.regex">"created_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract updated_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_updated_at</stringProp>
          <stringProp name="RegexExtractor.regex">"updated_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract is_active" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_is_active</stringProp>
          <stringProp name="RegexExtractor.regex">"is_active":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract disable_auto_group_change" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_disable_auto_group_change</stringProp>
          <stringProp name="RegexExtractor.regex">"disable_auto_group_change":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract created_in" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_created_in</stringProp>
          <stringProp name="RegexExtractor.regex">"created_in":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract dob" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_dob</stringProp>
          <stringProp name="RegexExtractor.regex">"dob":"(\d+)-(\d+)-(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$2$/$3$/$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract default_billing" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_default_billing</stringProp>
          <stringProp name="RegexExtractor.regex">"default_billing":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract default_shipping" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_default_shipping</stringProp>
          <stringProp name="RegexExtractor.regex">"default_shipping":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract gender" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_gender</stringProp>
          <stringProp name="RegexExtractor.regex">"gender":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract failures_num" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_failures_num</stringProp>
          <stringProp name="RegexExtractor.regex">"failures_num":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_entity_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_entity_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{"entity_id":"(\d+)".+?"parent_id":"${admin_customer_entity_id}"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
       <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_created_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_created_at</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"created_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_updated_at" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_updated_at</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"updated_at":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_is_active" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_is_active</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"is_active":"(\d+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_city" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_city</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"city":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_country_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_country_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"country_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_firstname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_firstname</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"firstname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_lastname" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_lastname</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"lastname":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_postcode" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_postcode</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"postcode":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_region" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_region</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"region":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_region_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_region_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"region_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address street" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_street</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"street":\["([^"]+)"\]</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_telephone" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_telephone</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"telephone":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract address_customer_id" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">false</stringProp>
          <stringProp name="RegexExtractor.refname">admin_customer_address_customer_id</stringProp>
          <stringProp name="RegexExtractor.regex">_address":\{.+?"parent_id":"${admin_customer_entity_id}".+?"customer_id":"([^"]+)"</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer entity_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_entity_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert website_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_website_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer firstname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_firstname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer lastname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_lastname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer email" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_email</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer group_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_group_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer store_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_store_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer created_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_created_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer updated_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_updated_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer is_active" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_is_active</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer disable_auto_group_change" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_disable_auto_group_change</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer created_in" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_created_in</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer dob" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="221072919">^\d+/\d+/\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_dob</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer default_billing" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_default_billing</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer default_shipping" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_default_shipping</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer gender" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_gender</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer failures_num" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_failures_num</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_entity_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_entity_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_created_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_created_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_updated_at" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_updated_at</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_is_active" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_is_active</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_city" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_city</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_country_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_country_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_firstname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_firstname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_lastname" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_lastname</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_postcode" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_postcode</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_region" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_region</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_region_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_region_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_street" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_street</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_telephone" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="2845929">^.+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_telephone</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert address_customer_id" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="89649215">^\d+$</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">1</intProp>
          <stringProp name="Assertion.scope">variable</stringProp>
          <stringProp name="Scope.variable">admin_customer_address_customer_id</stringProp>
        </ResponseAssertion>
        <hashTree/>
        <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
          <collectionProp name="HeaderManager.headers">
            <elementProp name="Accept-Language" elementType="Header">
              <stringProp name="Header.name">Accept-Language</stringProp>
              <stringProp name="Header.value">en-US,en;q=0.5</stringProp>
            </elementProp>
            <elementProp name="Accept" elementType="Header">
              <stringProp name="Header.name">Accept</stringProp>
              <stringProp name="Header.value">text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8</stringProp>
            </elementProp>
            <elementProp name="User-Agent" elementType="Header">
              <stringProp name="Header.name">User-Agent</stringProp>
              <stringProp name="Header.value">Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) Gecko/20100101 Firefox/27.0</stringProp>
            </elementProp>
            <elementProp name="Accept-Encoding" elementType="Header">
              <stringProp name="Header.name">Accept-Encoding</stringProp>
              <stringProp name="Header.value">gzip, deflate</stringProp>
            </elementProp>
          </collectionProp>
        </HeaderManager>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Customer Validate" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="isAjax   " elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax   </stringProp>
            </elementProp>
            <elementProp name="customer[entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[entity_id]</stringProp>
            </elementProp>
            <elementProp name="customer[website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_website_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[website_id]</stringProp>
            </elementProp>
            <elementProp name="customer[email]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_email}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[email]</stringProp>
            </elementProp>
            <elementProp name="customer[group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_group_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[group_id]</stringProp>
            </elementProp>
            <elementProp name="customer[store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[store_id]</stringProp>
            </elementProp>
            <elementProp name="customer[created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_at]</stringProp>
            </elementProp>
            <elementProp name="customer[updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[updated_at]</stringProp>
            </elementProp>
            <elementProp name="customer[is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[is_active]</stringProp>
            </elementProp>
            <elementProp name="customer[disable_auto_group_change]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_disable_auto_group_change}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[disable_auto_group_change]</stringProp>
            </elementProp>
            <elementProp name="customer[created_in]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_in}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_in]</stringProp>
            </elementProp>
            <elementProp name="customer[prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[prefix]</stringProp>
            </elementProp>
            <elementProp name="customer[firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_firstname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[firstname]</stringProp>
            </elementProp>
            <elementProp name="customer[middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[middlename]</stringProp>
            </elementProp>
            <elementProp name="customer[lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_lastname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[lastname]</stringProp>
            </elementProp>
            <elementProp name="customer[suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[suffix]</stringProp>
            </elementProp>
            <elementProp name="customer[dob]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_dob}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[dob]</stringProp>
            </elementProp>
            <elementProp name="customer[default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_billing}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_billing]</stringProp>
            </elementProp>
            <elementProp name="customer[default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_shipping}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_shipping]</stringProp>
            </elementProp>
            <elementProp name="customer[taxvat]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[taxvat]</stringProp>
            </elementProp>
            <elementProp name="customer[gender]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_gender}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[gender]</stringProp>
            </elementProp>
            <elementProp name="customer[failures_num]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_failures_num}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[failures_num]</stringProp>
            </elementProp>
            <elementProp name="customer[sendemail_store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[sendemail_store_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][entity_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][created_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][updated_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][is_active]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_city}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][city]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][company]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_country_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_firstname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_lastname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_postcode}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_street}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_telephone}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][customer_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][customer_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">John</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Doe</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Test Company</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][company]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Folsom</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][city]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">95630</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1234567890</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123 Main</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region_id]</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/customer/index/validate/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="49586">200</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_code</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Customer Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="isAjax   " elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">isAjax   </stringProp>
            </elementProp>
            <elementProp name="customer[entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[entity_id]</stringProp>
            </elementProp>
            <elementProp name="customer[website_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_website_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[website_id]</stringProp>
            </elementProp>
            <elementProp name="customer[email]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_email}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[email]</stringProp>
            </elementProp>
            <elementProp name="customer[group_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_group_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[group_id]</stringProp>
            </elementProp>
            <elementProp name="customer[store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[store_id]</stringProp>
            </elementProp>
            <elementProp name="customer[created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_at]</stringProp>
            </elementProp>
            <elementProp name="customer[updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[updated_at]</stringProp>
            </elementProp>
            <elementProp name="customer[is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[is_active]</stringProp>
            </elementProp>
            <elementProp name="customer[disable_auto_group_change]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_disable_auto_group_change}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[disable_auto_group_change]</stringProp>
            </elementProp>
            <elementProp name="customer[created_in]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_created_in}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[created_in]</stringProp>
            </elementProp>
            <elementProp name="customer[prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[prefix]</stringProp>
            </elementProp>
            <elementProp name="customer[firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_firstname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[firstname]</stringProp>
            </elementProp>
            <elementProp name="customer[middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[middlename]</stringProp>
            </elementProp>
            <elementProp name="customer[lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_lastname} 1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[lastname]</stringProp>
            </elementProp>
            <elementProp name="customer[suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[suffix]</stringProp>
            </elementProp>
            <elementProp name="customer[dob]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_dob}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[dob]</stringProp>
            </elementProp>
            <elementProp name="customer[default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_billing}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_billing]</stringProp>
            </elementProp>
            <elementProp name="customer[default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_default_shipping}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[default_shipping]</stringProp>
            </elementProp>
            <elementProp name="customer[taxvat]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[taxvat]</stringProp>
            </elementProp>
            <elementProp name="customer[gender]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_gender}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[gender]</stringProp>
            </elementProp>
            <elementProp name="customer[failures_num]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_failures_num}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[failures_num]</stringProp>
            </elementProp>
            <elementProp name="customer[sendemail_store_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_store_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">customer[sendemail_store_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][entity_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_entity_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][entity_id]</stringProp>
            </elementProp>

            <elementProp name="address[${admin_customer_address_entity_id}][created_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_created_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][created_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][updated_at]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_updated_at}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][updated_at]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][is_active]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_is_active}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][is_active]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_city}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][city]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][company]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_country_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_firstname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_lastname}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_postcode}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_region_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][region_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_street}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_telephone}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][customer_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_customer_address_customer_id}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][customer_id]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[${admin_customer_address_entity_id}][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">true</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[${admin_customer_address_entity_id}][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][prefix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][prefix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][firstname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">John</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][firstname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][middlename]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][middlename]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][lastname]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Doe</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][lastname]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][suffix]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][suffix]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][company]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Test Company</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][company]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][city]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Folsom</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][city]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][postcode]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">95630</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][postcode]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][telephone]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1234567890</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][telephone]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][vat_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][vat_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_billing]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_billing]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][default_shipping]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">false</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][default_shipping]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">123 Main</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][0]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][street][1]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][street][1]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][country_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">US</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][country_id]</stringProp>
            </elementProp>
            <elementProp name="address[new_0][region_id]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">12</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">address[new_0][region_id]</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/customer/index/save/</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">true</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer saved" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="292987815">You saved the customer.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">2</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <TestAction guiclass="TestActionGui" testclass="TestAction" testname="Pause" enabled="true">
        <intProp name="ActionProcessor.action">1</intProp>
        <intProp name="ActionProcessor.target">0</intProp>
        <stringProp name="ActionProcessor.duration">${__javaScript(Math.round(${adminCustomerManagementDelay}*1000))}</stringProp>
      </TestAction>
      <hashTree/>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Admin Edit Order" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${adminEditOrderPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Admin Edit Order");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Simple Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Orders page" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/orders_page.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1204796042">Create New Order</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">desc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
        </elementProp>
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/open_orders.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1637639774">totalRecords</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Search Pending Orders" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
        </elementProp>
        <elementProp name="namespace" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">sales_order_grid</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">namespace</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="search" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value"/>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">search</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[placeholder]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[placeholder]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[pageSize]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">200</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[pageSize]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="paging[current]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">paging[current]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[field]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">increment_id</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[field]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="sorting[direction]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">asc</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">sorting[direction]</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="isAjax" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">true</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">isAjax</stringProp>
          <stringProp name="Argument.desc">true</stringProp>
        </elementProp>
        <elementProp name="filters[status]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">pending</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">filters[status]</stringProp>
        </elementProp>
        <elementProp name="_" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${__time()}${__Random(1,1000000)}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">_</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/mui/index/render/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/search_orders.jmx</stringProp></HTTPSamplerProxy>
<hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1637639774">totalRecords</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order numbers" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_numbers</stringProp>
        <stringProp name="RegexExtractor.regex">\"increment_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order ids" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">order_ids</stringProp>
        <stringProp name="RegexExtractor.regex">\"entity_id\":\"(\d+)\"\,</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">-1</stringProp>
        <stringProp name="Scope.variable">simple_products</stringProp>
      </RegexExtractor>
      <hashTree/>
    </hashTree>

      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Generate Unique Ids for each Thread" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
  import java.util.ArrayList;
  import java.util.HashMap;
  import org.apache.jmeter.protocol.http.util.Base64Encoder;
  import java.util.Random;

  // get count of "order_numbers" variable defined in "Search Pending Orders Limit"
  int ordersCount = Integer.parseInt(vars.get("order_numbers_matchNr"));


  int clusterLength;
  int threadsNumber = ctx.getThreadGroup().getNumThreads();
  if (threadsNumber == 0) {
      //Number of orders for one thread
      clusterLength = ordersCount;
  } else {
      clusterLength = Math.round(ordersCount / threadsNumber);
      if (clusterLength == 0) {
          clusterLength = 1;
      }
  }

  //Current thread number starts from 0
  int currentThreadNum = ctx.getThreadNum();

  //Index of the current product from the cluster
  Random random = new Random();
  if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
  }
  int iterator = random.nextInt(clusterLength);
  if (iterator == 0) {
  	iterator = 1;
  }

  int i = clusterLength * currentThreadNum + iterator;

  orderNumber = vars.get("order_numbers_" + i.toString());
  orderId = vars.get("order_ids_" + i.toString());
  vars.put("order_number", orderNumber);
  vars.put("order_id", orderId);

  </stringProp>
    <stringProp name="BeanShellSampler.filename"/>
    <stringProp name="BeanShellSampler.parameters"/>
    <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
  </BeanShellSampler>
  <hashTree/>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Order" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/view/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/open_order.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="2103620713">#${order_number}</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract order status" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">order_status</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;span id="order_status"&gt;([^&lt;]+)&lt;/span&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

    <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller" enabled="true">
      <stringProp name="IfController.condition">"${order_status}" == "Pending"</stringProp>
      <boolProp name="IfController.evaluateAll">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/if_controller.jmx</stringProp></IfController>
    <hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Add Comment" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="history[status]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">pending</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">history[status]</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="history[comment]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Some text</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">history[comment]</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order/addComment/order_id/${order_id}/?isAjax=true</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/add_comment.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-2089278331">Not Notified</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Start" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments"/>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/start/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">GET</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/invoice_start.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="-1233850814">Invoice Totals</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract ordered items ids" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">item_ids</stringProp>
      <stringProp name="RegexExtractor.regex">&lt;div id="order_item_(\d+)_title"\s*class="product-title"&gt;</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default"/>
      <stringProp name="RegexExtractor.match_number">-1</stringProp>
      <stringProp name="Scope.variable">simple_products</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>

  <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Invoice Submit" enabled="true">
    <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
      <collectionProp name="Arguments.arguments">
        <elementProp name="form_key" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">${admin_form_key}</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">form_key</stringProp>
          <stringProp name="Argument.desc">false</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_1}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_1}]</stringProp>
        </elementProp>
        <elementProp name="invoice[items][${item_ids_2}]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">1</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[items][${item_ids_2}]</stringProp>
        </elementProp>
        <elementProp name="invoice[comment_text]" elementType="HTTPArgument">
          <boolProp name="HTTPArgument.always_encode">true</boolProp>
          <stringProp name="Argument.value">Invoiced</stringProp>
          <stringProp name="Argument.metadata">=</stringProp>
          <boolProp name="HTTPArgument.use_equals">true</boolProp>
          <stringProp name="Argument.name">invoice[comment_text]</stringProp>
        </elementProp>
      </collectionProp>
    </elementProp>
    <stringProp name="HTTPSampler.domain"/>
    <stringProp name="HTTPSampler.port"/>
    <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
    <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
    <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
    <stringProp name="HTTPSampler.contentEncoding"/>
    <stringProp name="HTTPSampler.path">${base_path}${admin_path}/sales/order_invoice/save/order_id/${order_id}/</stringProp>
    <stringProp name="HTTPSampler.method">POST</stringProp>
    <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
    <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
    <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
    <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
    <boolProp name="HTTPSampler.monitor">false</boolProp>
    <stringProp name="HTTPSampler.embedded_url_re"/>
  <stringProp name="TestPlan.comments">tool/fragments/ce/admin_create_process_returns/invoice_submit.jmx</stringProp></HTTPSamplerProxy>
  <hashTree>
    <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
      <collectionProp name="Asserion.test_strings">
        <stringProp name="1740524604">The invoice has been created</stringProp>
      </collectionProp>
      <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
      <boolProp name="Assertion.assume_success">false</boolProp>
      <intProp name="Assertion.test_type">2</intProp>
    </ResponseAssertion>
    <hashTree/>
  </hashTree>

    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Shipment Start" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/order_shipment/start/order_id/${order_id}/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/shipment_start.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="304100442">New Shipment</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Shipment Submit" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
            <stringProp name="Argument.desc">false</stringProp>
          </elementProp>
          <elementProp name="shipment[items][${item_ids_1}]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">shipment[items][${item_ids_1}]</stringProp>
          </elementProp>
          <elementProp name="shipment[items][${item_ids_2}]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">shipment[items][${item_ids_2}]</stringProp>
          </elementProp>
          <elementProp name="shipment[comment_text]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">Shipped</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">shipment[comment_text]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/order_shipment/save/order_id/${order_id}/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_edit_order/shipment_submit.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-2089453199">The shipment has been created</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  </hashTree>

  
    <ThroughputController guiclass="ThroughputControllerGui" testclass="ThroughputController" testname="Catalog GraphQL" enabled="true">
      <intProp name="ThroughputController.style">1</intProp>
      <boolProp name="ThroughputController.perThread">false</boolProp>
      <intProp name="ThroughputController.maxThroughput">1</intProp>
      <stringProp name="ThroughputController.percentThroughput">${catalogGraphQLPercentage}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/scenario_controller_tmpl.jmx</stringProp></ThroughputController>
    <hashTree>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set Test Label" enabled="true">
            <stringProp name="script">
var tmpLabel = vars.get("testLabel")
if (tmpLabel) {
 var testLabel = " (" + tmpLabel + ")"
     if (sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy') {
         if (sampler.getName().indexOf(testLabel) == -1) {
             sampler.setName(sampler.getName() + testLabel);
         }
     } else if (sampler.getName().indexOf("SetUp - ") == -1) {
         sampler.setName("SetUp - " + sampler.getName());
     }
 } else {
 	testLabel = ""
 }


            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/_system/setup_label.jmx</stringProp></JSR223PreProcessor>
        <hashTree/>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Set Label" enabled="true">
            <stringProp name="BeanShellSampler.query">
                vars.put("testLabel", "Catalog GraphQL");
            </stringProp>
            <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
        </BeanShellSampler>
        <hashTree/>
    
    <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Admin Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/once_only_controller.jmx</stringProp>
</OnceOnlyController>
    <hashTree>
        <JSR223PostProcessor guiclass="TestBeanGUI" testclass="JSR223PostProcessor" testname="Get admin form key PostProcessor" enabled="true">
        <stringProp name="script">
        function getFormKeyFromResponse()
        {
            var url = prev.getUrlAsString(),
            responseCode =  prev.getResponseCode(),
            formKey = null;
            searchPattern = /var FORM_KEY = '(.+)'/;
            if (responseCode == "200" &amp;&amp; url) {
                response = prev.getResponseDataAsString();
                formKey = response  &amp;&amp; response.match(searchPattern) ? response.match(searchPattern)[1] : null;
            }
            return formKey;
        }

        formKey = vars.get("form_key_storage");

	   currentFormKey = getFormKeyFromResponse();

	   if (currentFormKey != null &amp;&amp; currentFormKey != formKey) {
		  vars.put("form_key_storage", currentFormKey);
	   }
        </stringProp>
        <stringProp name="scriptLanguage">javascript</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin/handle_admin_form_key.jmx</stringProp></JSR223PostProcessor>
        <hashTree/>
        <JSR223PreProcessor guiclass="TestBeanGUI" testclass="JSR223PreProcessor" testname="Set admin form key PreProcessor" enabled="true">
            <stringProp name="script">
                formKey =  vars.get("form_key_storage");
                if (formKey
                    &amp;&amp; sampler.getClass().getName() == 'org.apache.jmeter.protocol.http.sampler.HTTPSamplerProxy'
                    &amp;&amp; sampler.getMethod() == "POST")
                    {
                        arguments = sampler.getArguments();
                        for (i=0; i&lt;arguments.getArgumentCount(); i++)
                        {
                            argument = arguments.getArgument(i);
                            if (argument.getName() == 'form_key' &amp;&amp; argument.getValue() != formKey) {
                            log.info("admin form key updated: " + argument.getValue() + " =&gt; " + formKey);
                            argument.setValue(formKey);
                        }
                    }
                }
            </stringProp>
            <stringProp name="scriptLanguage">javascript</stringProp>
        </JSR223PreProcessor>
        <hashTree/>
    
    <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
      <collectionProp name="CookieManager.cookies"/>
      <boolProp name="CookieManager.clearEachIteration">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/http_cookie_manager_without_clear_each_iteration.jmx</stringProp></CookieManager>
    <hashTree/>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin Login" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <CriticalSectionController guiclass="CriticalSectionControllerGui" testclass="CriticalSectionController" testname="Admin Login Lock" enabled="true">
        <stringProp name="CriticalSectionController.lockName">get-admin-email</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/lock_controller.jmx</stringProp></CriticalSectionController>
    <hashTree>
    
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get Admin Email" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/get_admin_email.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
adminUser = "none";
adminUserList = props.get("adminUserList");
adminUserListIterator = props.get("adminUserListIterator");
adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));

if (adminUsersDistribution == 1) {
    adminUser = adminUserList.poll();
} else {
    if (!adminUserListIterator.hasNext()) {
        adminUserListIterator = adminUserList.descendingIterator();
    }

    adminUser = adminUserListIterator.next();
}

if (adminUser == "none") {
  SampleResult.setResponseMessage("adminUser list is empty");
  SampleResult.setResponseData("adminUser list is empty","UTF-8");
  IsSuccess=false;
  SampleResult.setSuccessful(false);
  SampleResult.setStopThread(true);
}
vars.put("admin_user", adminUser);
      </stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert login form shown" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1397214398">Welcome</stringProp>
          <stringProp name="-515240035">&lt;title&gt;Magento Admin&lt;/title&gt;</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
        <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
        <stringProp name="RegexExtractor.template">$1$</stringProp>
        <stringProp name="RegexExtractor.default"/>
        <stringProp name="RegexExtractor.match_number">1</stringProp>
      </RegexExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert form_key extracted" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2845929">^.+$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Login Submit Form" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="dummy" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value"/>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">dummy</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_form_key}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">form_key</stringProp>
          </elementProp>
          <elementProp name="login[password]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_password}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[password]</stringProp>
          </elementProp>
          <elementProp name="login[username]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">${admin_user}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">login[username]</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/dashboard/</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <stringProp name="HTTPSampler.implementation">Java</stringProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_login_submit_form.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract form key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">admin_form_key</stringProp>
            <stringProp name="RegexExtractor.regex">&lt;input name="form_key" type="hidden" value="([^'"]+)" /&gt;</stringProp>
            <stringProp name="RegexExtractor.template">$1$</stringProp>
            <stringProp name="RegexExtractor.default"/>
            <stringProp name="RegexExtractor.match_number">1</stringProp>
        <stringProp name="TestPlan.comments">tool/fragments/ce/admin_login/admin_retrieve_form_key.jmx</stringProp></RegexExtractor>
        <hashTree/>
    </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Admin fixtures" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Create Cms Page with Page Builder Product List" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ee/admin_create_cms_page_with_page_builder_product_list/admin_create_cms_page_with_page_builder_product_list.jmx</stringProp>
    </GenericController>
    <hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create New" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments"/>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/new</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Save" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="content" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">&lt;div data-content-type="row" data-appearance="contained" data-element="main"&gt;&lt;div data-enable-parallax="0" data-parallax-speed="0.5" data-background-images="{}" data-element="inner" style="justify-content: flex-start; display: flex; flex-direction: column; background-position: left top; background-size: cover; background-repeat: no-repeat; background-attachment: scroll; border-style: none; border-width: 1px; border-radius: 0px; margin: 0px 0px 10px; padding: 10px;"&gt;&lt;div data-content-type="products" data-appearance="grid" data-element="main" style="border-style: none; border-width: 1px; border-radius: 0px; margin: 0px; padding: 0px;"&gt;{{widget type="Magento\CatalogWidget\Block\Product\ProductsList" template="Magento_CatalogWidget::product/widget/content/grid.phtml" anchor_text="" id_path="" show_pager="0" products_count="5" sort_order="date_newest_top" type_name="Catalog Products List" conditions_encoded="^[`1`:^[`type`:`Magento||CatalogWidget||Model||Rule||Condition||Combine`,`aggregator`:`any`,`value`:`1`,`new_child`:``^]^]"}}&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">content</stringProp>
            </elementProp>
            <elementProp name="content_heading" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">content_heading</stringProp>
            </elementProp>
            <elementProp name="form_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">${admin_form_key}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">form_key</stringProp>
            </elementProp>
            <elementProp name="identifier" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">identifier</stringProp>
            </elementProp>
            <elementProp name="is_active" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">is_active</stringProp>
            </elementProp>
            <elementProp name="layout_update_xml" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">layout_update_xml</stringProp>
            </elementProp>
            <elementProp name="meta_description" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_description</stringProp>
            </elementProp>
            <elementProp name="meta_keywords" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_keywords</stringProp>
            </elementProp>
            <elementProp name="meta_title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">meta_title</stringProp>
            </elementProp>
            <elementProp name="nodes_data" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">nodes_data</stringProp>
            </elementProp>
            <elementProp name="node_ids" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">node_ids</stringProp>
            </elementProp>
            <elementProp name="page_id" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value"/>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">page_id</stringProp>
            </elementProp>
            <elementProp name="page_layout" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">1column</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">page_layout</stringProp>
            </elementProp>
            <elementProp name="store_id[0]" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">store_id[0]</stringProp>
            </elementProp>
            <elementProp name="title" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">Page Builder Products ${__time(YMDHMS)}-${__threadNum}-${__Random(1,1000000)}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">title</stringProp>
            </elementProp>
            <elementProp name="website_root" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">0</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">website_root</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}${admin_path}/cms/page/save/back/edit</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
        <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-398886250">You saved the page.</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">16</intProp>
        </ResponseAssertion>
        <hashTree/>
        <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor" enabled="true">
          <stringProp name="RegexExtractor.useHeaders">URL</stringProp>
          <stringProp name="RegexExtractor.refname">cms_page_id</stringProp>
          <stringProp name="RegexExtractor.regex">/page_id\/([0-9]*)\/back/</stringProp>
          <stringProp name="RegexExtractor.template">$1$</stringProp>
          <stringProp name="RegexExtractor.default"/>
          <stringProp name="RegexExtractor.match_number">1</stringProp>
        </RegexExtractor>
        <hashTree/>
      </hashTree>
    </hashTree>
  </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Logout" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments"/>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}${admin_path}/admin/auth/logout/</stringProp>
      <stringProp name="HTTPSampler.method">GET</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/setup/admin_logout.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
    
    <BeanShellPostProcessor guiclass="TestBeanGUI" testclass="BeanShellPostProcessor" testname="Return Admin to Pool" enabled="true">
        <boolProp name="resetInterpreter">false</boolProp>
        <stringProp name="parameters"/>
        <stringProp name="filename"/>
        <stringProp name="script">
        adminUsersDistribution = Integer.parseInt(vars.get("admin_users_distribution_per_admin_pool"));
        if (adminUsersDistribution == 1) {
            adminUserList = props.get("adminUserList");
            adminUserList.add(vars.get("admin_user"));
        }
        </stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/return_admin_email_to_pool.jmx</stringProp></BeanShellPostProcessor>
    <hashTree/>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Product Fixtures Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Init Random Generator" enabled="true">
        <stringProp name="TestPlan.comments">tool/fragments/ce/common/init_random_generator_setup.jmx</stringProp>
        <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom} + ${__threadNum});
}

vars.putObject("randomIntGenerator", random);
        </stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
      </BeanShellSampler>
      <hashTree/>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^.{10,}$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get simple product" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/simple_products_setup.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("simple_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("simple_product_id", product.get("id"));
vars.put("simple_product_sku", product.get("sku"));
</stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - Get configurable product" enabled="true">
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/configurable_products_setup.jmx</stringProp>
      <stringProp name="BeanShellSampler.query">
import java.util.Random;

Random random = vars.getObject("randomIntGenerator");
number = random.nextInt(props.get("configurable_products_list").size());
product = props.get("simple_products_list").get(number);

vars.put("configurable_product_id", product.get("id"));
vars.put("configurable_product_sku", product.get("sku"));
</stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  </hashTree>
  </hashTree>
  
    <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="Graphql Query Controller" enabled="true">
  <stringProp name="TestPlan.comments">tool/fragments/ce/simple_controller.jmx</stringProp>
</GenericController>
    <hashTree>
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Content-Type</stringProp>
          <stringProp name="Header.value">application/json</stringProp>
        </elementProp>
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Accept</stringProp>
          <stringProp name="Header.value">*/*</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager_before_token.jmx</stringProp></HeaderManager>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Admin Token Retrieval" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"username":"${admin_user}","password":"${admin_password}"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}rest/V1/integration/admin/token</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/admin_token_retrieval.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="jp@gc - JSON Path Extractor" enabled="true">
        <stringProp name="VAR">admin_token</stringProp>
        <stringProp name="JSONPATH">$</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert token not null" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="484395188">^.{10,}$</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">1</intProp>
        <stringProp name="Assertion.scope">variable</stringProp>
        <stringProp name="Scope.variable">admin_token</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <HeaderManager guiclass="HeaderPanel" testclass="HeaderManager" testname="HTTP Header Manager" enabled="true">
      <collectionProp name="HeaderManager.headers">
        <elementProp name="" elementType="Header">
          <stringProp name="Header.name">Authorization</stringProp>
          <stringProp name="Header.value">Bearer ${admin_token}</stringProp>
        </elementProp>
      </collectionProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/api/header_manager.jmx</stringProp></HeaderManager>
    <hashTree/>
  
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query multiple products" enabled="true">
            <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
            <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                <collectionProp name="Arguments.arguments">
                    <elementProp name="" elementType="HTTPArgument">
                        <boolProp name="HTTPArgument.always_encode">false</boolProp>
                        <stringProp name="Argument.value">{"query":"{\n  products(\n    filter: {\n         price: {from: \"5\"}\n         name:{match:\"Product\"}\n     }\n    pageSize: 20\n    currentPage: 1\n    sort: {\n      price: ASC\n      name:DESC\n    }\n  ) {\n    total_count\n    items {\n        attribute_set_id\n        country_of_manufacture\n        created_at\n        description {\n            html\n        }\n        gift_message_available\n        image\n        {\n            url\n            label\n        }\n        meta_description\n        meta_keyword\n        meta_title\n        name\n        new_from_date\n        new_to_date\n        options_container\n        ... on CustomizableProductInterface {\n            options\n            {\n                title\n                required\n                sort_order\n            }\n        }\n        \n        price {\n            minimalPrice {\n                amount {\n                    value\n                    currency\n                }\n                adjustments {\n                    amount {\n                        value\n                        currency\n                    }\n                    code\n                    description\n                }\n            }\n            maximalPrice {\n                amount {\n                    value\n                    currency\n                }\n                adjustments {\n                    amount {\n                        value\n                        currency\n                    }\n                    code\n                    description\n                }\n            }\n            regularPrice {\n                amount {\n                    value\n                    currency\n                }\n                adjustments {\n                    amount {\n                        value\n                        currency\n                    }\n                    code\n                    description\n                }\n            }\n        }\n        short_description {\n            html\n        }\n        sku\n        small_image {\n            url\n            label\n        }\n        special_from_date\n        special_price\n        special_to_date\n        swatch_image\n        thumbnail\n        {\n            url\n            label\n        }\n        tier_price\n        type_id\n        updated_at\n        url_key\n        url_path\n        websites { id name code sort_order default_group_id is_default }\n      \t... on PhysicalProductInterface {\n        \tweight\n      \t}\n    }\n    page_info {\n      page_size\n      current_page\n    }\n  }\n}\n","variables":null,"operationName":null}</stringProp>
                        <stringProp name="Argument.metadata">=</stringProp>
                    </elementProp>
                </collectionProp>
            </elementProp>
            <stringProp name="HTTPSampler.domain"/>
            <stringProp name="HTTPSampler.port"/>
            <stringProp name="HTTPSampler.connect_timeout"/>
            <stringProp name="HTTPSampler.response_timeout"/>
            <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
            <stringProp name="HTTPSampler.contentEncoding"/>
            <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
            <stringProp name="HTTPSampler.method">POST</stringProp>
            <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
            <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
            <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
            <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
            <boolProp name="HTTPSampler.monitor">false</boolProp>
            <stringProp name="HTTPSampler.embedded_url_re"/>
            <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/query_multiple_products_with_extensible_data_objects_using_filter_only.jmx</stringProp>
        </HTTPSamplerProxy>
        <hashTree>
            <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
                <stringProp name="VAR">graphql_multiple_products_query_total_count</stringProp>
                <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
                <stringProp name="DEFAULT"/>
                <stringProp name="VARIABLE"/>
                <stringProp name="SUBJECT">BODY</stringProp>
            </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
            <hashTree/>
            <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 200" enabled="true">
                <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_multiple_products_query_total_count");
                    if (totalCount == null) {
                    Failure = true;
                    FailureMessage = "Not Expected \"totalCount\" to be null";
                    } else {
                    if (Integer.parseInt(totalCount) &lt; 200) {
                    Failure = true;
                    FailureMessage = "Expected \"totalCount\" to be greater than 200, Actual: " + totalCount;
                    } else {
                    Failure = false;
                    }
                    }
                </stringProp>
                <stringProp name="BeanShellAssertion.filename"/>
                <stringProp name="BeanShellAssertion.parameters"/>
                <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
            </BeanShellAssertion>
            <hashTree/>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query simple product" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n    products(filter: {sku: { eq: \"${simple_product_sku}\" } },sort: {name: ASC})\n    {\n       total_count\n       items {\n            attribute_set_id\n            categories\n            {\n                id\n                position\n            }\n            country_of_manufacture\n            created_at\n            description {\n                html\n            }\n            gift_message_available\n            id\n            image\n            {\n                url\n                label\n            }\n            meta_description\n            meta_keyword\n            meta_title\n            media_gallery_entries\n            {\n                disabled\n                file\n                id\n                label\n                media_type\n                position\n                types\n                content\n                {\n                    base64_encoded_data\n                    type\n                    name\n                }\n                video_content\n                {\n                    media_type\n                    video_description\n                    video_metadata\n                    video_provider\n                    video_title\n                    video_url\n                }\n            }\n            name\n            new_from_date\n            new_to_date\n            options_container\n            ... on CustomizableProductInterface {\n                options\n                {\n                    title\n                    required\n                    sort_order\n                }\n            }\n            \n           price {\n               minimalPrice {\n                   amount {\n                       value\n                       currency\n                   }\n                   adjustments {\n                       amount {\n                           value\n                           currency\n                       }\n                       code\n                       description\n                   }\n               }\n               maximalPrice {\n                   amount {\n                       value\n                       currency\n                   }\n                   adjustments {\n                       amount {\n                           value\n                           currency\n                       }\n                       code\n                       description\n                   }\n               }\n               regularPrice {\n                   amount {\n                       value\n                       currency\n                   }\n                   adjustments {\n                       amount {\n                           value\n                           currency\n                       }\n                       code\n                       description\n                   }\n               }\n           }\n            product_links\n            {\n                link_type\n                linked_product_sku\n                linked_product_type\n                position\n                sku\n            }\n            short_description {\n                html\n            }\n            sku\n            small_image\n            {\n                url\n                label\n            }\n            special_from_date\n            special_price\n            special_to_date\n            swatch_image\n            thumbnail\n            {\n                url\n                label\n            }\n            tier_price\n            tier_prices\n            {\n                customer_group_id\n                percentage_value\n                qty\n                value\n                website_id\n            }\n            type_id\n            updated_at\n            url_key\n            url_path\n            websites { id name code sort_order default_group_id is_default }\n            ... on PhysicalProductInterface {\n        \t\t\tweight\n      \t\t  }\n        }\n    }\n}\n","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/query_simple_product_with_extensible_data_objects.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_simple_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>

        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract response" enabled="true">
            <stringProp name="VAR">graphql_multiple_products_query_response</stringProp>
            <stringProp name="JSONPATH">$</stringProp>
            <stringProp name="DEFAULT"/>
            <stringProp name="VARIABLE"/>
            <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
        <hashTree/>
        <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count = 1" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_simple_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) != 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be equal to 1, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}
</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert product sku" enabled="true">
        <stringProp name="JSON_PATH">$.data.products.items[0].sku</stringProp>
        <stringProp name="EXPECTED_VALUE">${simple_product_sku}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query configurable product" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n    products(filter: {sku: {eq:\"${configurable_product_sku}\"} }, sort: {name: ASC}) {\n        total_count\n        items {\n            ... on PhysicalProductInterface {\n                weight\n            }\n            attribute_set_id\n            categories\n            {\n                id\n                position\n            }\n            country_of_manufacture\n            created_at\n            description {\n                html\n            }\n            gift_message_available\n            id\n            image\n            {\n                url\n                label\n            }\n            meta_description\n            meta_keyword\n            meta_title\n            media_gallery_entries\n            {\n                disabled\n                file\n                id\n                label\n                media_type\n                position\n                types\n                content\n                {\n                    base64_encoded_data\n                    type\n                    name\n                }\n                video_content\n                {\n                    media_type\n                    video_description\n                    video_metadata\n                    video_provider\n                    video_title\n                    video_url\n                }\n            }\n            name\n            new_from_date\n            new_to_date\n            options_container\n            ... on CustomizableProductInterface {\n                options\n                {\n                    title\n                    required\n                    sort_order\n                }\n            }\n            \n            price {\n                minimalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                maximalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                regularPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n            }\n            product_links\n            {\n                link_type\n                linked_product_sku\n                linked_product_type\n                position\n                sku\n            }\n            short_description {\n                html\n            }\n            sku\n            small_image\n            {\n                url\n                label\n            }\n            special_from_date\n            special_price\n            special_to_date\n            swatch_image\n            thumbnail\n            {\n                url\n                label\n            }\n            tier_price\n            tier_prices\n            {\n                customer_group_id\n                percentage_value\n                qty\n                value\n                website_id\n            }\n            type_id\n            updated_at\n            url_key\n            url_path\n            websites { id name code sort_order default_group_id is_default }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    id\n                    attribute_id\n                    label\n                    position\n                    use_default\n                    attribute_code\n                    values {\n                        value_index\n                        label\n                        store_label\n                        default_label\n                        use_default_value\n                    }\n                    product_id\n                }\n                variants {\n                    product {\n                        ... on PhysicalProductInterface {\n                            weight\n                        }\n                        sku\n                        color\n                        attribute_set_id\n                        categories\n                        {\n                            id\n                            position\n                        }\n                        country_of_manufacture\n                        created_at\n                        description {\n                            html\n                        }\n                        gift_message_available\n                        id\n                        image\n                        {\n                            url\n                            label\n                        }\n                        meta_description\n                        meta_keyword\n                        meta_title\n                        media_gallery_entries\n                        {\n                            disabled\n                            file\n                            id\n                            label\n                            media_type\n                            position\n                            types\n                            content\n                            {\n                                base64_encoded_data\n                                type\n                                name\n                            }\n                            video_content\n                            {\n                                media_type\n                                video_description\n                                video_metadata\n                                video_provider\n                                video_title\n                                video_url\n                            }\n                        }\n                        name\n                        new_from_date\n                        new_to_date\n                        options_container\n                        ... on CustomizableProductInterface {\n                            options\n                            {\n                                title\n                                required\n                                sort_order\n                            }\n                        }\n                        \n                        price {\n                            minimalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            maximalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            regularPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                        }\n                        product_links\n                        {\n                            link_type\n                            linked_product_sku\n                            linked_product_type\n                            position\n                            sku\n                        }\n                        short_description {\n                            html\n                        }\n                        sku\n                        small_image\n                        {\n                            url\n                            label\n                        }\n                        special_from_date\n                        special_price\n                        special_to_date\n                        swatch_image\n                        thumbnail\n                        {\n                            url\n                            label\n                        }\n                        tier_price\n                        tier_prices\n                        {\n                            customer_group_id\n                            percentage_value\n                            qty\n                            value\n                            website_id\n                        }\n                        type_id\n                        updated_at\n                        url_key\n                        url_path\n                        websites { id name code sort_order default_group_id is_default }\n\n\n                    }\n                    attributes {\n                        label\n                        code\n                        value_index\n                    }\n                }\n            }\n        }\n    }\n}\n","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/query_configurable_product_with_extensible_data_objects.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_configurable_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count = 1" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_configurable_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) != 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be equal to 1, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert configurable product sku" enabled="true">
        <stringProp name="JSON_PATH">$.data.products.items[0].sku</stringProp>
        <stringProp name="EXPECTED_VALUE">${configurable_product_sku}</stringProp>
        <boolProp name="JSONVALIDATION">true</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">true</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query products with full text search and filter" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n    products(\n   pageSize:20\n   currentPage:1\n    search: \"configurable\"\n        filter: {name: {match: \"Configurable Product\"} }\n        sort: {name: ASC}\n    ) {\n        total_count\n        page_info {\n          current_page\n          page_size\n          total_pages\n        }\n        items {\n            attribute_set_id\n            categories\n            {\n                id\n                position\n            }\n            country_of_manufacture\n            created_at\n            description {\n                html\n            }\n            gift_message_available\n            id\n            image\n            {\n                url\n                label\n            }\n            meta_description\n            meta_keyword\n            meta_title\n            media_gallery_entries\n            {\n                disabled\n                file\n                id\n                label\n                media_type\n                position\n                types\n                content\n                {\n                    base64_encoded_data\n                    type\n                    name\n                }\n                video_content\n                {\n                    media_type\n                    video_description\n                    video_metadata\n                    video_provider\n                    video_title\n                    video_url\n                }\n            }\n            name\n            new_from_date\n            new_to_date\n            options_container\n            ... on CustomizableProductInterface {\n                options\n                {\n                    title\n                    required\n                    sort_order\n                }\n            }\n            \n            price {\n                minimalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                maximalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                regularPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n            }\n            product_links\n            {\n                link_type\n                linked_product_sku\n                linked_product_type\n                position\n                sku\n            }\n            short_description {\n                html\n            }\n            sku\n            small_image\n            {\n                url\n                label\n            }\n            special_from_date\n            special_price\n            special_to_date\n            swatch_image\n            thumbnail\n            {\n                url\n                label\n            }\n            tier_price\n            tier_prices\n            {\n                customer_group_id\n                percentage_value\n                qty\n                value\n                website_id\n            }\n            type_id\n            updated_at\n            url_key\n            url_path\n            websites { id name code sort_order default_group_id is_default }\n            ... on PhysicalProductInterface {\n        \t\t\tweight\n      \t\t\t}\n            ... on ConfigurableProduct {\n                configurable_options {\n                    id\n                    attribute_id\n                    label\n                    position\n                    use_default\n                    attribute_code\n                    values {\n                        value_index\n                        label\n                        store_label\n                        default_label\n                        use_default_value\n                    }\n                    product_id\n                }\n                variants {\n                    product {\n                        ... on PhysicalProductInterface {\n                            weight\n                        }\n                        sku\n                        color\n                        attribute_set_id\n                        categories\n                        {\n                            id\n                            position\n                        }\n                        country_of_manufacture\n                        created_at\n                        description {\n                            html\n                        }\n                        gift_message_available\n                        id\n                        image\n                        {\n                            url\n                            label\n                        }\n                        meta_description\n                        meta_keyword\n                        meta_title\n                        media_gallery_entries\n                        {\n                            disabled\n                            file\n                            id\n                            label\n                            media_type\n                            position\n                            types\n                            content\n                            {\n                                base64_encoded_data\n                                type\n                                name\n                            }\n                            video_content\n                            {\n                                media_type\n                                video_description\n                                video_metadata\n                                video_provider\n                                video_title\n                                video_url\n                            }\n                        }\n                        name\n                        new_from_date\n                        new_to_date\n                        options_container\n                        ... on CustomizableProductInterface {\n                            options\n                            {\n                                title\n                                required\n                                sort_order\n                            }\n                        }\n                        \n                        price {\n                            minimalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            maximalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            regularPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                        }\n                        product_links\n                        {\n                            link_type\n                            linked_product_sku\n                            linked_product_type\n                            position\n                            sku\n                        }\n                        short_description {\n                            html\n                        }\n                        sku\n                        small_image\n                        {\n                            url\n                            label\n                        }\n                        special_from_date\n                        special_price\n                        special_to_date\n                        swatch_image\n                        thumbnail\n                        {\n                            url\n                            label\n                        }\n                        tier_price\n                        tier_prices\n                        {\n                            customer_group_id\n                            percentage_value\n                            qty\n                            value\n                            website_id\n                        }\n                        type_id\n                        updated_at\n                        url_key\n                        url_path\n                        websites { id name code sort_order default_group_id is_default }\n\n\n                    }\n                    attributes {\n                        label\n                        code\n                        value_index\n                    }\n                }\n            }\n        }\n    }\n}\n","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/query_multiple_products_with_extensible_data_objects_using_full_text_and_filter.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_search_products_query_total_count_fulltext_filter</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_pages" enabled="true">
        <stringProp name="VAR">graphql_search_products_query_total_pages_fulltext_filter</stringProp>
        <stringProp name="JSONPATH">$.data.products.page_info.total_pages</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
      <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_search_products_query_total_count_fulltext_filter");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query products with full text search and filter last page" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n    products(\n   pageSize:20\n   currentPage:${graphql_search_products_query_total_pages_fulltext_filter}\n    search: \"configurable\"\n        filter: {name: {match: \"Configurable Product\"} }\n        sort: {name: ASC}\n    ) {\n        total_count\n        page_info {\n          current_page\n          page_size\n          total_pages\n        }\n        items {\n            attribute_set_id\n            categories\n            {\n                id\n                position\n            }\n            country_of_manufacture\n            created_at\n            description {\n                html\n            }\n            gift_message_available\n            id\n            image\n            {\n                url\n                label\n            }\n            meta_description\n            meta_keyword\n            meta_title\n            media_gallery_entries\n            {\n                disabled\n                file\n                id\n                label\n                media_type\n                position\n                types\n                content\n                {\n                    base64_encoded_data\n                    type\n                    name\n                }\n                video_content\n                {\n                    media_type\n                    video_description\n                    video_metadata\n                    video_provider\n                    video_title\n                    video_url\n                }\n            }\n            name\n            new_from_date\n            new_to_date\n            options_container\n            ... on CustomizableProductInterface {\n                options\n                {\n                    title\n                    required\n                    sort_order\n                }\n            }\n            \n            price {\n                minimalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                maximalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                regularPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n            }\n            product_links\n            {\n                link_type\n                linked_product_sku\n                linked_product_type\n                position\n                sku\n            }\n            short_description {\n                html\n            }\n            sku\n            small_image\n            {\n                url\n                label\n            }\n            special_from_date\n            special_price\n            special_to_date\n            swatch_image\n            thumbnail\n            {\n                url\n                label\n            }\n            tier_price\n            tier_prices\n            {\n                customer_group_id\n                percentage_value\n                qty\n                value\n                website_id\n            }\n            type_id\n            updated_at\n            url_key\n            url_path\n            websites { id name code sort_order default_group_id is_default }\n            ... on PhysicalProductInterface {\n        \t\t\tweight\n      \t\t\t}\n            ... on ConfigurableProduct {\n                configurable_options {\n                    id\n                    attribute_id\n                    label\n                    position\n                    use_default\n                    attribute_code\n                    values {\n                        value_index\n                        label\n                        store_label\n                        default_label\n                        use_default_value\n                    }\n                    product_id\n                }\n                variants {\n                    product {\n                        ... on PhysicalProductInterface {\n                            weight\n                        }\n                        sku\n                        color\n                        attribute_set_id\n                        categories\n                        {\n                            id\n                            position\n                        }\n                        country_of_manufacture\n                        created_at\n                        description {\n                            html\n                        }\n                        gift_message_available\n                        id\n                        image\n                        {\n                            url\n                            label\n                        }\n                        meta_description\n                        meta_keyword\n                        meta_title\n                        media_gallery_entries\n                        {\n                            disabled\n                            file\n                            id\n                            label\n                            media_type\n                            position\n                            types\n                            content\n                            {\n                                base64_encoded_data\n                                type\n                                name\n                            }\n                            video_content\n                            {\n                                media_type\n                                video_description\n                                video_metadata\n                                video_provider\n                                video_title\n                                video_url\n                            }\n                        }\n                        name\n                        new_from_date\n                        new_to_date\n                        options_container\n                        ... on CustomizableProductInterface {\n                            options\n                            {\n                                title\n                                required\n                                sort_order\n                            }\n                        }\n                        \n                        price {\n                            minimalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            maximalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            regularPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                        }\n                        product_links\n                        {\n                            link_type\n                            linked_product_sku\n                            linked_product_type\n                            position\n                            sku\n                        }\n                        short_description {\n                            html\n                        }\n                        sku\n                        small_image\n                        {\n                            url\n                            label\n                        }\n                        special_from_date\n                        special_price\n                        special_to_date\n                        swatch_image\n                        thumbnail\n                        {\n                            url\n                            label\n                        }\n                        tier_price\n                        tier_prices\n                        {\n                            customer_group_id\n                            percentage_value\n                            qty\n                            value\n                            website_id\n                        }\n                        type_id\n                        updated_at\n                        url_key\n                        url_path\n                        websites { id name code sort_order default_group_id is_default }\n\n\n                    }\n                    attributes {\n                        label\n                        code\n                        value_index\n                    }\n                }\n            }\n        }\n    }\n}\n","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/query_multiple_products_with_extensible_data_objects_using_full_text_and_filter_last_page.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_search_products_query_total_count_fulltext_filter</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_search_products_query_total_count_fulltext_filter");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query products with full text search only" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n    products(\n   pageSize:20\n   currentPage:1\n    search: \"configurable\"\n    sort: {name: ASC}) {\n        total_count\n        items {\n            attribute_set_id\n            categories\n            {\n                id\n                position\n            }\n            country_of_manufacture\n            created_at\n            description {\n                html\n            }\n            gift_message_available\n            id\n            image\n            {\n                url\n                label\n            }\n            meta_description\n            meta_keyword\n            meta_title\n            media_gallery_entries\n            {\n                disabled\n                file\n                id\n                label\n                media_type\n                position\n                types\n                content\n                {\n                    base64_encoded_data\n                    type\n                    name\n                }\n                video_content\n                {\n                    media_type\n                    video_description\n                    video_metadata\n                    video_provider\n                    video_title\n                    video_url\n                }\n            }\n            name\n            new_from_date\n            new_to_date\n            options_container\n            ... on CustomizableProductInterface {\n                options\n                {\n                    title\n                    required\n                    sort_order\n                }\n            }\n            \n            price {\n                minimalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                maximalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                regularPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n            }\n            product_links\n            {\n                link_type\n                linked_product_sku\n                linked_product_type\n                position\n                sku\n            }\n            short_description {\n                html\n            }\n            sku\n            small_image\n            {\n                url\n                label\n            }\n            special_from_date\n            special_price\n            special_to_date\n            swatch_image\n            thumbnail\n            {\n                url\n                label\n            }\n            tier_price\n            tier_prices\n            {\n                customer_group_id\n                percentage_value\n                qty\n                value\n                website_id\n            }\n            type_id\n            updated_at\n            url_key\n            url_path\n            websites { id name code sort_order default_group_id is_default }\n            ... on PhysicalProductInterface {\n        \t\t\tweight\n      \t\t\t}\n            ... on ConfigurableProduct {\n                configurable_options {\n                    id\n                    attribute_id\n                    label\n                    position\n                    use_default\n                    attribute_code\n                    values {\n                        value_index\n                        label\n                        store_label\n                        default_label\n                        use_default_value\n                    }\n                    product_id\n                }\n                variants {\n                    product {\n                        ... on PhysicalProductInterface {\n                            weight\n                        }\n                        sku\n                        color\n                        attribute_set_id\n                        categories\n                        {\n                            id\n                            position\n                        }\n                        country_of_manufacture\n                        created_at\n                        description {\n                            html\n                        }\n                        gift_message_available\n                        id\n                        image\n                        {\n                            url\n                            label\n                        }\n                        meta_description\n                        meta_keyword\n                        meta_title\n                        media_gallery_entries\n                        {\n                            disabled\n                            file\n                            id\n                            label\n                            media_type\n                            position\n                            types\n                            content\n                            {\n                                base64_encoded_data\n                                type\n                                name\n                            }\n                            video_content\n                            {\n                                media_type\n                                video_description\n                                video_metadata\n                                video_provider\n                                video_title\n                                video_url\n                            }\n                        }\n                        name\n                        new_from_date\n                        new_to_date\n                        options_container\n                        ... on CustomizableProductInterface {\n                            options\n                            {\n                                title\n                                required\n                                sort_order\n                            }\n                        }\n                        \n                        price {\n                            minimalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            maximalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            regularPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                        }\n                        product_links\n                        {\n                            link_type\n                            linked_product_sku\n                            linked_product_type\n                            position\n                            sku\n                        }\n                        short_description {\n                            html\n                        }\n                        sku\n                        small_image {\n                            url\n                            label\n                        }\n                        special_from_date\n                        special_price\n                        special_to_date\n                        swatch_image\n                        thumbnail\n                        {\n                            url\n                            label\n                        }\n                        tier_price\n                        tier_prices\n                        {\n                            customer_group_id\n                            percentage_value\n                            qty\n                            value\n                            website_id\n                        }\n                        type_id\n                        updated_at\n                        url_key\n                        url_path\n                        websites { id name code sort_order default_group_id is_default }\n\n\n                    }\n                    attributes {\n                        label\n                        code\n                        value_index\n                    }\n                }\n            }\n        }\n    }\n}\n","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/query_multiple_products_with_extensible_data_objects_using_full_text_only.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_search_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_search_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query products with full text search and filters" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n    products(\n   pageSize:20\n   currentPage:1\n    search: \"Option 1\"\n    sort: {name: ASC}) {\n        filters {\n            name\n            filter_items_count\n            request_var\n            filter_items {\n                label\n                value_string\n                items_count\n                ... on SwatchLayerFilterItemInterface {\n                    swatch_data {\n                        type\n                        value\n                    }\n                }\n            }\n        }\n        total_count\n        items {\n            attribute_set_id\n            categories\n            {\n                id\n                position\n            }\n            country_of_manufacture\n            created_at\n            description {\n                html\n            }\n            gift_message_available\n            id\n            image\n            {\n                url\n                label\n            }\n            meta_description\n            meta_keyword\n            meta_title\n            media_gallery_entries\n            {\n                disabled\n                file\n                id\n                label\n                media_type\n                position\n                types\n                content\n                {\n                    base64_encoded_data\n                    type\n                    name\n                }\n                video_content\n                {\n                    media_type\n                    video_description\n                    video_metadata\n                    video_provider\n                    video_title\n                    video_url\n                }\n            }\n            name\n            new_from_date\n            new_to_date\n            options_container\n            ... on CustomizableProductInterface {\n                options\n                {\n                    title\n                    required\n                    sort_order\n                }\n            }\n            \n            price {\n                minimalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                maximalPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n                regularPrice {\n                    amount {\n                        value\n                        currency\n                    }\n                    adjustments {\n                        amount {\n                            value\n                            currency\n                        }\n                        code\n                        description\n                    }\n                }\n            }\n            product_links\n            {\n                link_type\n                linked_product_sku\n                linked_product_type\n                position\n                sku\n            }\n            short_description {\n                html\n            }\n            sku\n            small_image\n            {\n                url\n                label\n            }\n            special_from_date\n            special_price\n            special_to_date\n            swatch_image\n            thumbnail\n            {\n                url\n                label\n            }\n            tier_price\n            tier_prices\n            {\n                customer_group_id\n                percentage_value\n                qty\n                value\n                website_id\n            }\n            type_id\n            updated_at\n            url_key\n            url_path\n            websites { id name code sort_order default_group_id is_default }\n            ... on PhysicalProductInterface {\n                    weight\n                  }\n            ... on ConfigurableProduct {\n                configurable_options {\n                    id\n                    attribute_id\n                    label\n                    position\n                    use_default\n                    attribute_code\n                    values {\n                        value_index\n                        label\n                        store_label\n                        default_label\n                        use_default_value\n                    }\n                    product_id\n                }\n                variants {\n                    product {\n                        ... on PhysicalProductInterface {\n                            weight\n                        }\n                        sku\n                        color\n                        attribute_set_id\n                        categories\n                        {\n                            id\n                            position\n                        }\n                        country_of_manufacture\n                        created_at\n                        description {\n                            html\n                        }\n                        gift_message_available\n                        id\n                        image\n                        {\n                            url\n                            label\n                        }\n                        meta_description\n                        meta_keyword\n                        meta_title\n                        media_gallery_entries\n                        {\n                            disabled\n                            file\n                            id\n                            label\n                            media_type\n                            position\n                            types\n                            content\n                            {\n                                base64_encoded_data\n                                type\n                                name\n                            }\n                            video_content\n                            {\n                                media_type\n                                video_description\n                                video_metadata\n                                video_provider\n                                video_title\n                                video_url\n                            }\n                        }\n                        name\n                        new_from_date\n                        new_to_date\n                        options_container\n                        ... on CustomizableProductInterface {\n                            options\n                            {\n                                title\n                                required\n                                sort_order\n                            }\n                        }\n                        \n                        price {\n                            minimalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            maximalPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                            regularPrice {\n                                amount {\n                                    value\n                                    currency\n                                }\n                                adjustments {\n                                    amount {\n                                        value\n                                        currency\n                                    }\n                                    code\n                                    description\n                                }\n                            }\n                        }\n                        product_links\n                        {\n                            link_type\n                            linked_product_sku\n                            linked_product_type\n                            position\n                            sku\n                        }\n                        short_description {\n                            html\n                        }\n                        sku\n                        small_image\n                        {\n                            url\n                            label\n                        }\n                        special_from_date\n                        special_price\n                        special_to_date\n                        swatch_image\n                        thumbnail\n                        {\n                            url\n                            label\n                        }\n                        tier_price\n                        tier_prices\n                        {\n                            customer_group_id\n                            percentage_value\n                            qty\n                            value\n                            website_id\n                        }\n                        type_id\n                        updated_at\n                        url_key\n                        url_path\n                        websites { id name code sort_order default_group_id is_default }\n\n\n                    }\n                    attributes {\n                        label\n                        code\n                        value_index\n                    }\n                }\n            }\n        }\n    }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/query_multiple_products_with_extensible_data_objects_using_full_text_and_filters.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_search_products_query_total_count</stringProp>
        <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
        <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_search_products_query_total_count");

if (totalCount == null) {
        Failure = true;
        FailureMessage = "Not Expected \"totalCount\" to be null";
} else {
	if (Integer.parseInt(totalCount) &lt; 1) {
   Failure = true;
   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
	} else {
		Failure = false;
	}
}


</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
    </hashTree>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query products with full text search and aggregations" enabled="true">
        <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
          <collectionProp name="Arguments.arguments">
            <elementProp name="" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">false</boolProp>
              <stringProp name="Argument.value">{"query":"{\n    products(\n   pageSize:20\n   currentPage:1\n    search: \"Option 1\"\n    sort: {name: ASC}) {\n        aggregations{\n          attribute_code\n          count\n          label\n          options{\n        count\n        label\n        value\n          }\n        }\n        total_count\n        items {\n        attribute_set_id\n        categories\n        {\n        id\n        position\n        }\n        country_of_manufacture\n        created_at\n        description {\n        html\n        }\n        gift_message_available\n        id\n        image\n        {\n        url\n        label\n        }\n        meta_description\n        meta_keyword\n        meta_title\n        media_gallery_entries\n        {\n        disabled\n        file\n        id\n        label\n        media_type\n        position\n        types\n        content\n        {\n        base64_encoded_data\n        type\n        name\n        }\n        video_content\n        {\n        media_type\n        video_description\n        video_metadata\n        video_provider\n        video_title\n        video_url\n        }\n        }\n        name\n        new_from_date\n        new_to_date\n        options_container\n        ... on CustomizableProductInterface {\n        options\n        {\n        title\n        required\n        sort_order\n        }\n        }\n        \n        price {\n        minimalPrice {\n        amount {\n        value\n        currency\n        }\n        adjustments {\n        amount {\n        value\n        currency\n        }\n        code\n        description\n        }\n        }\n        maximalPrice {\n        amount {\n        value\n        currency\n        }\n        adjustments {\n        amount {\n        value\n        currency\n        }\n        code\n        description\n        }\n        }\n        regularPrice {\n        amount {\n        value\n        currency\n        }\n        adjustments {\n        amount {\n        value\n        currency\n        }\n        code\n        description\n        }\n        }\n        }\n        product_links\n        {\n        link_type\n        linked_product_sku\n        linked_product_type\n        position\n        sku\n        }\n        short_description {\n        html\n        }\n        sku\n        small_image\n        {\n        url\n        label\n        }\n        special_from_date\n        special_price\n        special_to_date\n        swatch_image\n        thumbnail\n        {\n        url\n        label\n        }\n        tier_price\n        tier_prices\n        {\n        customer_group_id\n        percentage_value\n        qty\n        value\n        website_id\n        }\n        type_id\n        updated_at\n        url_key\n        url_path\n        websites { id name code sort_order default_group_id is_default }\n        ... on PhysicalProductInterface {\n        weight\n          }\n        ... on ConfigurableProduct {\n        configurable_options {\n        id\n        attribute_id\n        label\n        position\n        use_default\n        attribute_code\n        values {\n        value_index\n        label\n        store_label\n        default_label\n        use_default_value\n        }\n        product_id\n        }\n        variants {\n        product {\n        ... on PhysicalProductInterface {\n        weight\n        }\n        sku\n        color\n        attribute_set_id\n        categories\n        {\n        id\n        position\n        }\n        country_of_manufacture\n        created_at\n        description {\n        html\n        }\n        gift_message_available\n        id\n        image\n        {\n        url\n        label\n        }\n        meta_description\n        meta_keyword\n        meta_title\n        media_gallery_entries\n        {\n        disabled\n        file\n        id\n        label\n        media_type\n        position\n        types\n        content\n        {\n        base64_encoded_data\n        type\n        name\n        }\n        video_content\n        {\n        media_type\n        video_description\n        video_metadata\n        video_provider\n        video_title\n        video_url\n        }\n        }\n        name\n        new_from_date\n        new_to_date\n        options_container\n        ... on CustomizableProductInterface {\n        options\n        {\n        title\n        required\n        sort_order\n        }\n        }\n        \n        price {\n        minimalPrice {\n        amount {\n        value\n        currency\n        }\n        adjustments {\n        amount {\n        value\n        currency\n        }\n        code\n        description\n        }\n        }\n        maximalPrice {\n        amount {\n        value\n        currency\n        }\n        adjustments {\n        amount {\n        value\n        currency\n        }\n        code\n        description\n        }\n        }\n        regularPrice {\n        amount {\n        value\n        currency\n        }\n        adjustments {\n        amount {\n        value\n        currency\n        }\n        code\n        description\n        }\n        }\n        }\n        product_links\n        {\n        link_type\n        linked_product_sku\n        linked_product_type\n        position\n        sku\n        }\n        short_description {\n        html\n        }\n        sku\n        small_image\n        {\n        url\n        label\n        }\n        special_from_date\n        special_price\n        special_to_date\n        swatch_image\n        thumbnail\n        {\n        url\n        label\n        }\n        tier_price\n        tier_prices\n        {\n        customer_group_id\n        percentage_value\n        qty\n        value\n        website_id\n        }\n        type_id\n        updated_at\n        url_key\n        url_path\n        websites { id name code sort_order default_group_id is_default }\n\n\n        }\n        attributes {\n        label\n        code\n        value_index\n        }\n        }\n        }\n        }\n    }\n}","variables":null,"operationName":null}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
            </elementProp>
          </collectionProp>
        </elementProp>
        <stringProp name="HTTPSampler.domain"/>
        <stringProp name="HTTPSampler.port"/>
        <stringProp name="HTTPSampler.connect_timeout"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/query_multiple_products_with_extensible_data_objects_using_full_text_and_aggregations.jmx</stringProp>
      </HTTPSamplerProxy>
      <hashTree>
        <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
          <stringProp name="VAR">graphql_search_products_query_total_count</stringProp>
          <stringProp name="JSONPATH">$.data.products.total_count</stringProp>
          <stringProp name="DEFAULT"/>
          <stringProp name="VARIABLE"/>
          <stringProp name="SUBJECT">BODY</stringProp>
        </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
        <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="Assert total count &gt; 0" enabled="true">
          <stringProp name="BeanShellAssertion.query">String totalCount=vars.get("graphql_search_products_query_total_count");
                if (totalCount == null) {
                        Failure = true;
                        FailureMessage = "Not Expected \"totalCount\" to be null";
                } else {
                    if (Integer.parseInt(totalCount) &lt; 1) {
                   Failure = true;
                   FailureMessage = "Expected \"totalCount\" to be greater than zero, Actual: " + totalCount;
                    } else {
                        Failure = false;
                    }
                }
          </stringProp>
          <stringProp name="BeanShellAssertion.filename"/>
          <stringProp name="BeanShellAssertion.parameters"/>
          <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
        </BeanShellAssertion>
      <hashTree/>
    </hashTree>
  
        <OnceOnlyController guiclass="OnceOnlyControllerGui" testclass="OnceOnlyController" testname="Query Customer" enabled="true"/>
        <hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create customer" enabled="true">
                <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
                <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                    <collectionProp name="Arguments.arguments">
                        <elementProp name="" elementType="HTTPArgument">
                            <boolProp name="HTTPArgument.always_encode">false</boolProp>
                            <stringProp name="Argument.value">{&#xD;
                                "customer": {&#xD;
                                &#xD;
                                "email": "customer_${__time()}-${__threadNum}-${__Random(1,1000000)}@example.com",&#xD;
                                "firstname": "test_${__time()}-${__threadNum}-${__Random(1,1000000)}",&#xD;
                                "lastname": "Doe"&#xD;
                                },&#xD;
                                "password": "test@123"&#xD;
                                }</stringProp>
                            <stringProp name="Argument.metadata">=</stringProp>
                        </elementProp>
                    </collectionProp>
                </elementProp>
                <stringProp name="HTTPSampler.domain"/>
                <stringProp name="HTTPSampler.port"/>
                <stringProp name="HTTPSampler.connect_timeout"/>
                <stringProp name="HTTPSampler.response_timeout"/>
                <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                <stringProp name="HTTPSampler.contentEncoding"/>
                <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/customers</stringProp>
                <stringProp name="HTTPSampler.method">POST</stringProp>
                <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                <boolProp name="HTTPSampler.monitor">false</boolProp>
                <stringProp name="HTTPSampler.embedded_url_re"/>
                <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/query_frontend_customer.jmx</stringProp>
            </HTTPSamplerProxy>
            <hashTree>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract customer id" enabled="true">
                    <stringProp name="VAR">customer_id</stringProp>
                    <stringProp name="JSONPATH">$.id</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE"/>
                    <stringProp name="SUBJECT">BODY</stringProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                <hashTree/>
                <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert customer id not null" enabled="true">
                    <collectionProp name="Asserion.test_strings">
                        <stringProp name="89649215">^\d+$</stringProp>
                    </collectionProp>
                    <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
                    <boolProp name="Assertion.assume_success">false</boolProp>
                    <intProp name="Assertion.test_type">1</intProp>
                    <stringProp name="Assertion.scope">variable</stringProp>
                    <stringProp name="Scope.variable">customer_id</stringProp>
                </ResponseAssertion>
                <hashTree/>
            </hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Check customer" enabled="true">
                <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
                    <collectionProp name="Arguments.arguments"/>
                </elementProp>
                <stringProp name="HTTPSampler.domain"/>
                <stringProp name="HTTPSampler.port"/>
                <stringProp name="HTTPSampler.connect_timeout"/>
                <stringProp name="HTTPSampler.response_timeout"/>
                <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                <stringProp name="HTTPSampler.contentEncoding"/>
                <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/customers/${customer_id}</stringProp>
                <stringProp name="HTTPSampler.method">GET</stringProp>
                <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                <boolProp name="HTTPSampler.monitor">false</boolProp>
                <stringProp name="HTTPSampler.embedded_url_re"/>
                <stringProp name="TestPlan.comments">tool/fragments/ce/api/check_customer.jmx</stringProp>
            </HTTPSamplerProxy>
            <hashTree>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
                    <stringProp name="JSON_PATH">$.id</stringProp>
                    <stringProp name="EXPECTED_VALUE">${customer_id}</stringProp>
                    <boolProp name="JSONVALIDATION">true</boolProp>
                    <boolProp name="EXPECT_NULL">false</boolProp>
                    <boolProp name="INVERT">false</boolProp>
                    <boolProp name="ISREGEX">true</boolProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
                <hashTree/>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract customer email" enabled="true">
                    <stringProp name="VAR">customer_email</stringProp>
                    <stringProp name="JSONPATH">$.email</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE"/>
                    <stringProp name="SUBJECT">BODY</stringProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                <hashTree/>
            </hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Create customer token" enabled="true">
                <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
                <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                    <collectionProp name="Arguments.arguments">
                        <elementProp name="" elementType="HTTPArgument">
                            <boolProp name="HTTPArgument.always_encode">false</boolProp>
                            <stringProp name="Argument.value">{&#xD;
                                "username":"${customer_email}",&#xD;
                                "password":"test@123"&#xD;
                                }&#xD;
                            </stringProp>
                            <stringProp name="Argument.metadata">=</stringProp>
                        </elementProp>
                    </collectionProp>
                </elementProp>
                <stringProp name="HTTPSampler.domain"/>
                <stringProp name="HTTPSampler.port"/>
                <stringProp name="HTTPSampler.connect_timeout"/>
                <stringProp name="HTTPSampler.response_timeout"/>
                <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                <stringProp name="HTTPSampler.contentEncoding"/>
                <stringProp name="HTTPSampler.path">${base_path}rest/default/V1/integration/customer/token</stringProp>
                <stringProp name="HTTPSampler.method">POST</stringProp>
                <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                <boolProp name="HTTPSampler.monitor">false</boolProp>
                <stringProp name="HTTPSampler.embedded_url_re"/>
                <stringProp name="TestPlan.comments">tool/fragments/ce/api/create_customer.jmx</stringProp>
            </HTTPSamplerProxy>
            <hashTree>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract customer token" enabled="true">
                    <stringProp name="VAR">customer_token</stringProp>
                    <stringProp name="JSONPATH">$</stringProp>
                    <stringProp name="DEFAULT"/>
                    <stringProp name="VARIABLE"/>
                    <stringProp name="SUBJECT">BODY</stringProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
                <hashTree/>
            </hashTree>
            <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query customer with token" enabled="true">
                <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
                <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
                    <collectionProp name="Arguments.arguments">
                        <elementProp name="" elementType="HTTPArgument">
                            <boolProp name="HTTPArgument.always_encode">false</boolProp>
                            <stringProp name="Argument.value">{"query":"{\n  customer {\n    created_at\n    group_id\n\n    prefix\n    firstname\n    middlename\n    lastname\n    suffix\n    email\n    default_billing\n    default_shipping\n\n    dob\n    taxvat\n\n    id\n    addresses {\n        id\n        customer_id\n        region {\n            region_code\n          region\n          region_id\n        }\n        region_id\n        country_id\n        street \n        company\n        telephone\n        fax\n        postcode\n        city\n        firstname\n        lastname\n        middlename\n        prefix\n        suffix\n        vat_id\n        default_shipping\n        default_billing\n    }\n    is_subscribed\n  }\n}","variables":null,"operationName":null}</stringProp>
                            <stringProp name="Argument.metadata">=</stringProp>
                        </elementProp>
                    </collectionProp>
                </elementProp>
                <stringProp name="HTTPSampler.domain"/>
                <stringProp name="HTTPSampler.port"/>
                <stringProp name="HTTPSampler.connect_timeout"/>
                <stringProp name="HTTPSampler.response_timeout"/>
                <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
                <stringProp name="HTTPSampler.contentEncoding"/>
                <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
                <stringProp name="HTTPSampler.method">POST</stringProp>
                <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
                <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
                <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
                <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
                <boolProp name="HTTPSampler.monitor">false</boolProp>
                <stringProp name="HTTPSampler.embedded_url_re"/>
                <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/query_frontend_customer.jmx</stringProp>
            </HTTPSamplerProxy>
            <hashTree>
                <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="Set Customer Token" enabled="true">
                    <boolProp name="resetInterpreter">false</boolProp>
                    <stringProp name="parameters"/>
                    <stringProp name="filename"/>
                    <stringProp name="script">import org.apache.jmeter.protocol.http.control.Header;

                        sampler.getHeaderManager().removeHeaderNamed("Authorization");

                        sampler.getHeaderManager().add(new Header("Authorization","Bearer " + vars.get("customer_token")));</stringProp>
                </BeanShellPreProcessor>
                <hashTree/>
                <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="Assert customer lastname" enabled="true">
                    <stringProp name="JSON_PATH">$.data.customer.lastname</stringProp>
                    <stringProp name="EXPECTED_VALUE">Doe</stringProp>
                    <boolProp name="JSONVALIDATION">true</boolProp>
                    <boolProp name="EXPECT_NULL">false</boolProp>
                    <boolProp name="INVERT">false</boolProp>
                    <boolProp name="ISREGEX">true</boolProp>
                </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
                <hashTree/>
            </hashTree>
        </hashTree>
    
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query Category" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  category(id: 1) {\n      name\n      id\n      level\n      description\n      path\n      path_in_store\n      url_key\n      url_path\n      children {\n        id\n        description\n        default_sort_by\n        children {\n          id\n          description\n          level\n          children {\n            level\n            id\n            children {\n              id\n            }\n          }\n        }\n      }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/query_root_category.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_category_query_name</stringProp>
        <stringProp name="JSONPATH">$.data.category.name</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="BeanShell Assertion" enabled="true">
        <stringProp name="BeanShellAssertion.query">String name = vars.get("graphql_category_query_name");
if (name == null) {
	Failure = true;
	FailureMessage = "Not Expected \"children\" to be null";
} else {
	if (!name.equals("Root Catalog")) {
		Failure = true;
		FailureMessage = "Expected \"name\" to equal \"Root Catalog\", Actual: " + name;
	} else {
		Failure = false;
	}
}
</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Query CategoryList" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">{"query":"{\n  categoryList{\n      name\n      id\n      level\n      description\n      path\n      path_in_store\n      url_key\n      url_path\n      children {\n        id\n        description\n        default_sort_by\n        children {\n          id\n          description\n          level\n          children {\n            level\n            id\n            children {\n              id\n            }\n          }\n        }\n      }\n  }\n}","variables":null,"operationName":null}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port"/>
      <stringProp name="HTTPSampler.connect_timeout"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
      <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/query_root_category_list.jmx</stringProp>
    </HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.gui.JSONPathExtractorGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor" testname="Extract total_count" enabled="true">
        <stringProp name="VAR">graphql_categoryList_query_name</stringProp>
        <stringProp name="JSONPATH">$.data.categoryList[0].name</stringProp>
        <stringProp name="DEFAULT"/>
        <stringProp name="VARIABLE"/>
        <stringProp name="SUBJECT">BODY</stringProp>
        <stringProp name="INPUT_FORMAT">JSON</stringProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathextractor.JSONPathExtractor>
      <hashTree/>
      <BeanShellAssertion guiclass="BeanShellAssertionGui" testclass="BeanShellAssertion" testname="BeanShell Assertion" enabled="true">
        <stringProp name="BeanShellAssertion.query">String name = vars.get("graphql_categoryList_query_name");
if (name == null) {
	Failure = true;
	FailureMessage = "Not Expected \"children\" to be null";
} else {
	if (!name.equals("Default Category")) {
		Failure = true;
		FailureMessage = "Expected \"name\" to equal \"Default Category\", Actual: " + name;
	} else {
		Failure = false;
	}
}
</stringProp>
        <stringProp name="BeanShellAssertion.filename"/>
        <stringProp name="BeanShellAssertion.parameters"/>
        <boolProp name="BeanShellAssertion.resetInterpreter">false</boolProp>
      </BeanShellAssertion>
      <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Get Cms Page by id" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments">
        <collectionProp name="Arguments.arguments">
          <elementProp name="" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">
           {"query":"query getCmsPage($id: Int!, $onServer: Boolean!) {\n  cmsPage(id: $id) {\n    url_key\n    content\n    content_heading\n    title\n    page_layout\n    meta_title @include(if: $onServer)\n    meta_keywords @include(if: $onServer)\n    meta_description @include(if: $onServer)\n  }\n}","variables":{"id":${cms_page_id},"onServer":false},"operationName":"getCmsPage"}
            </stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
        </collectionProp>
      </elementProp>
      <stringProp name="HTTPSampler.domain"/>
      <stringProp name="HTTPSampler.port">${graphql_port_number}</stringProp>
      <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
      <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}graphql</stringProp>
      <stringProp name="HTTPSampler.method">POST</stringProp>
      <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
      <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
      <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
      <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
      <boolProp name="HTTPSampler.monitor">false</boolProp>
      <stringProp name="HTTPSampler.embedded_url_re"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/graphql/get_get_cms_page_by_id.jmx</stringProp></HTTPSamplerProxy>
    <hashTree>
      <com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion guiclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.gui.JSONPathAssertionGui" testclass="com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion" testname="jp@gc - JSON Path Assertion" enabled="true">
        <stringProp name="JSON_PATH">$.data.cmsPage.url_key</stringProp>
        <stringProp name="EXPECTED_VALUE">${cms_page_id}</stringProp>
        <boolProp name="JSONVALIDATION">false</boolProp>
        <boolProp name="EXPECT_NULL">false</boolProp>
        <boolProp name="INVERT">false</boolProp>
        <boolProp name="ISREGEX">false</boolProp>
      </com.atlantbh.jmeter.plugins.jsonutils.jsonpathassertion.JSONPathAssertion>
      <hashTree/>
    </hashTree>
  </hashTree>
  </hashTree>

  </hashTree>

    
    <PostThreadGroup guiclass="PostThreadGroupGui" testclass="PostThreadGroup" testname="tearDown Thread Group" enabled="true">
      <stringProp name="ThreadGroup.on_sample_error">stoptest</stringProp>
      <elementProp name="ThreadGroup.main_controller" elementType="LoopController" guiclass="LoopControlPanel" testclass="LoopController" testname="Loop Controller" enabled="true">
        <boolProp name="LoopController.continue_forever">false</boolProp>
        <stringProp name="LoopController.loops">1</stringProp>
      </elementProp>
      <stringProp name="ThreadGroup.num_threads">1</stringProp>
      <stringProp name="ThreadGroup.ramp_time">1</stringProp>
      <longProp name="ThreadGroup.start_time">1395324075000</longProp>
      <longProp name="ThreadGroup.end_time">1395324075000</longProp>
      <boolProp name="ThreadGroup.scheduler">false</boolProp>
      <stringProp name="ThreadGroup.duration"/>
      <stringProp name="ThreadGroup.delay"/>
    <stringProp name="TestPlan.comments">tool/fragments/ce/tear_down.jmx</stringProp></PostThreadGroup>
    <hashTree>
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller: Dashboard enabled?" enabled="true">
        <stringProp name="IfController.condition">"${dashboard_enabled}" == "1"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      </IfController>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Trigger End Event" enabled="true">
          <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
            <collectionProp name="Arguments.arguments">
              <elementProp name="environment" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${__property(environment)}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">environment</stringProp>
              </elementProp>
              <elementProp name="startTime" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${start_time}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">startTime</stringProp>
              </elementProp>
              <elementProp name="endTime" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${__time(yyyy-MM-dd'T'HH:mm:ss.SSSZ)}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">endTime</stringProp>
              </elementProp>
              <elementProp name="stats_server" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${redis_host}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">stats_server</stringProp>
              </elementProp>
            </collectionProp>
          </elementProp>
          <stringProp name="HTTPSampler.domain"/>
          <stringProp name="HTTPSampler.port"/>
          <stringProp name="HTTPSampler.connect_timeout">60000</stringProp>
          <stringProp name="HTTPSampler.response_timeout">200000</stringProp>
          <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
          <stringProp name="HTTPSampler.contentEncoding"/>
          <stringProp name="HTTPSampler.path">${base_path}DeploymentEvent.php</stringProp>
          <stringProp name="HTTPSampler.method">POST</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert curl call was successful" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="185669135">Errors:</stringProp>
          </collectionProp>
          <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
          <boolProp name="Assertion.assume_success">false</boolProp>
          <intProp name="Assertion.test_type">6</intProp>
        </ResponseAssertion>
        <hashTree/>
      </hashTree>
      <CookieManager guiclass="CookiePanel" testclass="CookieManager" testname="HTTP Cookie Manager" enabled="true">
        <collectionProp name="CookieManager.cookies">
          <elementProp name="product_list_limit" elementType="Cookie" testname="product_list_limit">
            <stringProp name="Cookie.value">30</stringProp>
            <stringProp name="Cookie.domain">${host}</stringProp>
            <stringProp name="Cookie.path">/</stringProp>
            <boolProp name="Cookie.secure">false</boolProp>
            <longProp name="Cookie.expires">0</longProp>
            <boolProp name="Cookie.path_specified">true</boolProp>
            <boolProp name="Cookie.domain_specified">true</boolProp>
          </elementProp>
        </collectionProp>
        <boolProp name="CookieManager.clearEachIteration">true</boolProp>
      </CookieManager>
      <hashTree/>
    </hashTree>
  
    <ResultCollector guiclass="StatGraphVisualizer" testclass="ResultCollector" testname="Aggregate Graph" enabled="false">
      <boolProp name="ResultCollector.error_logging">false</boolProp>
      <objProp>
        <name>saveConfig</name>
        <value class="SampleSaveConfiguration">
          <time>true</time>
          <latency>true</latency>
          <timestamp>true</timestamp>
          <success>true</success>
          <label>true</label>
          <code>true</code>
          <message>true</message>
          <threadName>true</threadName>
          <dataType>true</dataType>
          <encoding>false</encoding>
          <assertions>true</assertions>
          <subresults>true</subresults>
          <responseData>false</responseData>
          <samplerData>false</samplerData>
          <xml>false</xml>
          <fieldNames>false</fieldNames>
          <responseHeaders>false</responseHeaders>
          <requestHeaders>false</requestHeaders>
          <responseDataOnError>false</responseDataOnError>
          <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
          <assertionsResultsToSave>0</assertionsResultsToSave>
          <bytes>true</bytes>
          <hostname>true</hostname>
          <threadCounts>true</threadCounts>
          <sampleCount>true</sampleCount>
        </value>
      </objProp>
      <stringProp name="filename">${response_time_file_name}</stringProp>
    <stringProp name="TestPlan.comments">tool/fragments/ce/common/aggregate_graph.jmx</stringProp></ResultCollector>
    <hashTree/>
  
    <DebugPostProcessor guiclass="TestBeanGUI" testclass="DebugPostProcessor" testname="Debug PostProcessor" enabled="false">
      <boolProp name="displayJMeterProperties">false</boolProp>
      <boolProp name="displayJMeterVariables">true</boolProp>
      <boolProp name="displaySamplerProperties">true</boolProp>
      <boolProp name="displaySystemProperties">false</boolProp>
    <stringProp name="TestPlan.comments">tool/fragments/_system/debug.jmx</stringProp></DebugPostProcessor>
    <hashTree/>
  </hashTree>
    <WorkBench guiclass="WorkBenchGui" testclass="WorkBench" testname="WorkBench" enabled="true">
      <boolProp name="WorkBench.save">true</boolProp>
    </WorkBench>
  </hashTree>
</jmeterTestPlan>