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/magento/setup/performance-toolkit/
Upload File :
Current File : /home/htlwork.com/www/dev/magento/setup/performance-toolkit/benchmark_2015.jmx
<?xml version="1.0"?>
<!--
/**
 * Copyright © Magento, Inc. All rights reserved.
 * See COPYING.txt for license details.
 */
-->
<jmeterTestPlan version="1.2" properties="2.8" jmeter="2.13 r1665067">
  <hashTree>
    <TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="Performance Toolkit" 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="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="abandonedCartByGuest" elementType="Argument">
            <stringProp name="Argument.name">abandonedCartByGuest</stringProp>
            <stringProp name="Argument.value">${__P(abandonedCartByGuest,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="abandonedCartByGuestPercent" elementType="Argument">
            <stringProp name="Argument.name">abandonedCartByGuestPercent</stringProp>
            <stringProp name="Argument.value">${__P(abandonedCartByGuestPercent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="abandonedCartByCustomer" elementType="Argument">
            <stringProp name="Argument.name">abandonedCartByCustomer</stringProp>
            <stringProp name="Argument.value">${__P(abandonedCartByCustomer,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="abandonedCartByCustomerPercent" elementType="Argument">
            <stringProp name="Argument.name">abandonedCartByCustomerPercent</stringProp>
            <stringProp name="Argument.value">${__P(abandonedCartByCustomerPercent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="accountManagement" elementType="Argument">
            <stringProp name="Argument.name">accountManagement</stringProp>
            <stringProp name="Argument.value">${__P(accountManagement,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="accountManagementPercent" elementType="Argument">
            <stringProp name="Argument.name">accountManagementPercent</stringProp>
            <stringProp name="Argument.value">${__P(accountManagementPercent,100)}</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,123123q)}</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="adminBrowseCustomersGridPercent" elementType="Argument">
            <stringProp name="Argument.name">adminBrowseCustomersGridPercent</stringProp>
            <stringProp name="Argument.value">${__P(adminBrowseCustomersGridPercent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminBrowseCustomersGridScenario1_ViewOddGridPages" elementType="Argument">
            <stringProp name="Argument.name">adminBrowseCustomersGridScenario1_ViewOddGridPages</stringProp>
            <stringProp name="Argument.value">${__P(adminBrowseCustomersGridScenario1_ViewOddGridPages,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminBrowseCustomersGridScenario2_ViewEvenGridPages" elementType="Argument">
            <stringProp name="Argument.name">adminBrowseCustomersGridScenario2_ViewEvenGridPages</stringProp>
            <stringProp name="Argument.value">${__P(adminBrowseCustomersGridScenario2_ViewEvenGridPages,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminBrowseCustomersGridScenario3_Filtering" elementType="Argument">
            <stringProp name="Argument.name">adminBrowseCustomersGridScenario3_Filtering</stringProp>
            <stringProp name="Argument.value">${__P(adminBrowseCustomersGridScenario3_Filtering,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminBrowseCustomersGridScenario4_Sorting" elementType="Argument">
            <stringProp name="Argument.name">adminBrowseCustomersGridScenario4_Sorting</stringProp>
            <stringProp name="Argument.value">${__P(adminBrowseCustomersGridScenario4_Sorting,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminBrowseCustomersGridScenario5_FilteringAndSorting" elementType="Argument">
            <stringProp name="Argument.name">adminBrowseCustomersGridScenario5_FilteringAndSorting</stringProp>
            <stringProp name="Argument.value">${__P(adminBrowseCustomersGridScenario5_FilteringAndSorting,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminBrowseOrdersGridPercent" elementType="Argument">
            <stringProp name="Argument.name">adminBrowseOrdersGridPercent</stringProp>
            <stringProp name="Argument.value">${__P(adminBrowseOrdersGridPercent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminBrowseOrdersGridScenario1_ViewOddGridPages" elementType="Argument">
            <stringProp name="Argument.name">adminBrowseOrdersGridScenario1_ViewOddGridPages</stringProp>
            <stringProp name="Argument.value">${__P(adminBrowseOrdersGridScenario1_ViewOddGridPages,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminBrowseOrdersGridScenario2_ViewEvenGridPages" elementType="Argument">
            <stringProp name="Argument.name">adminBrowseOrdersGridScenario2_ViewEvenGridPages</stringProp>
            <stringProp name="Argument.value">${__P(adminBrowseOrdersGridScenario2_ViewEvenGridPages,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminBrowseOrdersGridScenario3_Filtering" elementType="Argument">
            <stringProp name="Argument.name">adminBrowseOrdersGridScenario3_Filtering</stringProp>
            <stringProp name="Argument.value">${__P(adminBrowseOrdersGridScenario3_Filtering,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminBrowseOrdersGridScenario4_Sorting" elementType="Argument">
            <stringProp name="Argument.name">adminBrowseOrdersGridScenario4_Sorting</stringProp>
            <stringProp name="Argument.value">${__P(adminBrowseOrdersGridScenario4_Sorting,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminBrowseOrdersGridScenario5_FilteringAndSorting" elementType="Argument">
            <stringProp name="Argument.name">adminBrowseOrdersGridScenario5_FilteringAndSorting</stringProp>
            <stringProp name="Argument.value">${__P(adminBrowseOrdersGridScenario5_FilteringAndSorting,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminBrowseProductsGridPercent" elementType="Argument">
            <stringProp name="Argument.name">adminBrowseProductsGridPercent</stringProp>
            <stringProp name="Argument.value">${__P(adminBrowseProductsGridPercent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminBrowseProductsGridScenario1_ViewOddGridPages" elementType="Argument">
            <stringProp name="Argument.name">adminBrowseProductsGridScenario1_ViewOddGridPages</stringProp>
            <stringProp name="Argument.value">${__P(adminBrowseProductsGridScenario1_ViewOddGridPages,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminBrowseProductsGridScenario2_ViewEvenGridPages" elementType="Argument">
            <stringProp name="Argument.name">adminBrowseProductsGridScenario2_ViewEvenGridPages</stringProp>
            <stringProp name="Argument.value">${__P(adminBrowseProductsGridScenario2_ViewEvenGridPages,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminBrowseProductsGridScenario3_Filtering" elementType="Argument">
            <stringProp name="Argument.name">adminBrowseProductsGridScenario3_Filtering</stringProp>
            <stringProp name="Argument.value">${__P(adminBrowseProductsGridScenario3_Filtering,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminBrowseProductsGridScenario4_Sorting" elementType="Argument">
            <stringProp name="Argument.name">adminBrowseProductsGridScenario4_Sorting</stringProp>
            <stringProp name="Argument.value">${__P(adminBrowseProductsGridScenario4_Sorting,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminBrowseProductsGridScenario5_FilteringAndSorting" elementType="Argument">
            <stringProp name="Argument.name">adminBrowseProductsGridScenario5_FilteringAndSorting</stringProp>
            <stringProp name="Argument.value">${__P(adminBrowseProductsGridScenario5_FilteringAndSorting,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="adminCategoryManagement" elementType="Argument">
            <stringProp name="Argument.name">adminCategoryManagement</stringProp>
            <stringProp name="Argument.value">${__P(adminCategoryManagement,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="adminCategoryManagementPercent" elementType="Argument">
            <stringProp name="Argument.name">adminCategoryManagementPercent</stringProp>
            <stringProp name="Argument.value">${__P(adminCategoryManagementPercent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCMSManagement" elementType="Argument">
            <stringProp name="Argument.name">adminCMSManagement</stringProp>
            <stringProp name="Argument.value">${__P(adminCMSManagement,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="adminCMSManagementPercent" elementType="Argument">
            <stringProp name="Argument.name">adminCMSManagementPercent</stringProp>
            <stringProp name="Argument.value">${__P(adminCMSManagementPercent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCreateOrder" elementType="Argument">
            <stringProp name="Argument.name">adminCreateOrder</stringProp>
            <stringProp name="Argument.value">${__P(adminCreateOrder,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCreateOrderPercent" elementType="Argument">
            <stringProp name="Argument.name">adminCreateOrderPercent</stringProp>
            <stringProp name="Argument.value">${__P(adminCreateOrderPercent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCreateProduct" elementType="Argument">
            <stringProp name="Argument.name">adminCreateProduct</stringProp>
            <stringProp name="Argument.value">${__P(adminCreateProduct,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCreateProductPercent" elementType="Argument">
            <stringProp name="Argument.name">adminCreateProductPercent</stringProp>
            <stringProp name="Argument.value">${__P(adminCreateProductPercent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminCustomerManagement" elementType="Argument">
            <stringProp name="Argument.name">adminCustomerManagement</stringProp>
            <stringProp name="Argument.value">${__P(adminCustomerManagement,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="adminCustomerManagementPercent" elementType="Argument">
            <stringProp name="Argument.name">adminCustomerManagementPercent</stringProp>
            <stringProp name="Argument.value">${__P(adminCustomerManagementPercent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminEditOrder" elementType="Argument">
            <stringProp name="Argument.name">adminEditOrder</stringProp>
            <stringProp name="Argument.value">${__P(adminEditOrder,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminEditOrderPercent" elementType="Argument">
            <stringProp name="Argument.name">adminEditOrderPercent</stringProp>
            <stringProp name="Argument.value">${__P(adminEditOrderPercent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminEditProduct" elementType="Argument">
            <stringProp name="Argument.name">adminEditProduct</stringProp>
            <stringProp name="Argument.value">${__P(adminEditProduct,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminEditProductPercent" elementType="Argument">
            <stringProp name="Argument.name">adminEditProductPercent</stringProp>
            <stringProp name="Argument.value">${__P(adminEditProductPercent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminExportCustomers" elementType="Argument">
            <stringProp name="Argument.name">adminExportCustomers</stringProp>
            <stringProp name="Argument.value">${__P(adminExportCustomers,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminExportProducts" elementType="Argument">
            <stringProp name="Argument.name">adminExportProducts</stringProp>
            <stringProp name="Argument.value">${__P(adminExportProducts,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,)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminImportCustomerFilePath" elementType="Argument">
            <stringProp name="Argument.name">adminImportCustomerFilePath</stringProp>
            <stringProp name="Argument.value">${__P(adminImportCustomerFilePath,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminImportCustomers" elementType="Argument">
            <stringProp name="Argument.name">adminImportCustomers</stringProp>
            <stringProp name="Argument.value">${__P(adminImportCustomers,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminImportProductBehavior" elementType="Argument">
            <stringProp name="Argument.name">adminImportProductBehavior</stringProp>
            <stringProp name="Argument.value">${__P(adminImportProductBehavior,)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminImportProductFilePath" elementType="Argument">
            <stringProp name="Argument.name">adminImportProductFilePath</stringProp>
            <stringProp name="Argument.value">${__P(adminImportProductFilePath,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminImportProductFilePath-2" elementType="Argument">
            <stringProp name="Argument.name">adminImportProductFilePath-2</stringProp>
            <stringProp name="Argument.value">${__P(adminImportProductFilePath-2,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="adminImportProducts" elementType="Argument">
            <stringProp name="Argument.name">adminImportProducts</stringProp>
            <stringProp name="Argument.value">${__P(adminImportProducts,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="adminPromotionsManagementPercent" elementType="Argument">
            <stringProp name="Argument.name">adminPromotionsManagementPercent</stringProp>
            <stringProp name="Argument.value">${__P(adminPromotionsManagementPercent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="apiBrowseAndBuyFlow" elementType="Argument">
            <stringProp name="Argument.name">apiBrowseAndBuyFlow</stringProp>
            <stringProp name="Argument.value">${__P(apiBrowseAndBuyFlow,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="apiBrowseAndBuyFlowPercent" elementType="Argument">
            <stringProp name="Argument.name">apiBrowseAndBuyFlowPercent</stringProp>
            <stringProp name="Argument.value">${__P(apiBrowseAndBuyFlowPercent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="apiCustomerSync" elementType="Argument">
            <stringProp name="Argument.name">apiCustomerSync</stringProp>
            <stringProp name="Argument.value">${__P(apiCustomerSync,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="apiCustomerSyncPercent" elementType="Argument">
            <stringProp name="Argument.name">apiCustomerSyncPercent</stringProp>
            <stringProp name="Argument.value">${__P(apiCustomerSyncPercent,100)}</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="apiOrderInvoiceShipmentSyncPercent" elementType="Argument">
            <stringProp name="Argument.name">apiOrderInvoiceShipmentSyncPercent</stringProp>
            <stringProp name="Argument.value">${__P(apiOrderInvoiceShipmentSyncPercent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="apiProcessOrders" elementType="Argument">
            <stringProp name="Argument.name">apiProcessOrders</stringProp>
            <stringProp name="Argument.value">${__P(apiProcessOrders,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="apiProcessOrdersPercent" elementType="Argument">
            <stringProp name="Argument.name">apiProcessOrdersPercent</stringProp>
            <stringProp name="Argument.value">${__P(apiProcessOrdersPercent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="apiProductSync" elementType="Argument">
            <stringProp name="Argument.name">apiProductSync</stringProp>
            <stringProp name="Argument.value">${__P(apiProductSync,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="apiProductSyncPercent" elementType="Argument">
            <stringProp name="Argument.name">apiProductSyncPercent</stringProp>
            <stringProp name="Argument.value">${__P(apiProductSyncPercent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="apiSnapshot" elementType="Argument">
            <stringProp name="Argument.name">apiSnapshot</stringProp>
            <stringProp name="Argument.value">${__P(apiSnapshot,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="bamboo_build_number" elementType="Argument">
            <stringProp name="Argument.name">bamboo_build_number</stringProp>
            <stringProp name="Argument.value">${__P(bamboo_build_number,)}</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="cache_indicator" elementType="Argument">
            <stringProp name="Argument.name">cache_indicator</stringProp>
            <stringProp name="Argument.value">${__P(cache_indicator,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="catalogBrowsingByGuest" elementType="Argument">
            <stringProp name="Argument.name">catalogBrowsingByGuest</stringProp>
            <stringProp name="Argument.value">${__P(catalogBrowsingByGuest,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="catalogBrowsingByGuestPercent" elementType="Argument">
            <stringProp name="Argument.name">catalogBrowsingByGuestPercent</stringProp>
            <stringProp name="Argument.value">${__P(catalogBrowsingByGuestPercent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="catalogBrowsingByCustomer" elementType="Argument">
            <stringProp name="Argument.name">catalogBrowsingByCustomer</stringProp>
            <stringProp name="Argument.value">${__P(catalogBrowsingByCustomer,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="catalogBrowsingByCustomerPercent" elementType="Argument">
            <stringProp name="Argument.name">catalogBrowsingByCustomerPercent</stringProp>
            <stringProp name="Argument.value">${__P(catalogBrowsingByCustomerPercent,100)}</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="checkoutByGuest" elementType="Argument">
            <stringProp name="Argument.name">checkoutByGuest</stringProp>
            <stringProp name="Argument.value">${__P(checkoutByGuest,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="checkoutByGuestPercent" elementType="Argument">
            <stringProp name="Argument.name">checkoutByGuestPercent</stringProp>
            <stringProp name="Argument.value">${__P(checkoutByGuestPercent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="checkoutByCustomer" elementType="Argument">
            <stringProp name="Argument.name">checkoutByCustomer</stringProp>
            <stringProp name="Argument.value">${__P(checkoutByCustomer,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="checkoutByCustomerPercent" elementType="Argument">
            <stringProp name="Argument.name">checkoutByCustomerPercent</stringProp>
            <stringProp name="Argument.value">${__P(checkoutByCustomerPercent,100)}</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,30)}</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,4)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="customer_limit" elementType="Argument">
            <stringProp name="Argument.name">customer_limit</stringProp>
            <stringProp name="Argument.value">${__P(customer_limit,20)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="customer_password" elementType="Argument">
            <stringProp name="Argument.name">customer_password</stringProp>
            <stringProp name="Argument.value">123123q</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,20)}</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="files_folder" elementType="Argument">
            <stringProp name="Argument.name">files_folder</stringProp>
            <stringProp name="Argument.value">${__P(files_folder,/opt/mpaf/tool/fragments/files/)}</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,4)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="host" elementType="Argument">
            <stringProp name="Argument.name">host</stringProp>
            <stringProp name="Argument.value">${__P(host,)}</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="lineItemsAmount" elementType="Argument">
            <stringProp name="Argument.name">lineItemsAmount</stringProp>
            <stringProp name="Argument.value">${__P(lineItemsAmount,10)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="orders" elementType="Argument">
            <stringProp name="Argument.name">orders</stringProp>
            <stringProp name="Argument.value">${__P(orders,0)}</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="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="productCompareByGuest" elementType="Argument">
            <stringProp name="Argument.name">productCompareByGuest</stringProp>
            <stringProp name="Argument.value">${__P(productCompareByGuest,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="productCompareByGuestPercent" elementType="Argument">
            <stringProp name="Argument.name">productCompareByGuestPercent</stringProp>
            <stringProp name="Argument.value">${__P(productCompareByGuestPercent,100)}</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="productsGridMassActions" elementType="Argument">
            <stringProp name="Argument.name">productsGridMassActions</stringProp>
            <stringProp name="Argument.value">${__P(productsGridMassActions,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="productsGridMassActionsPercent" elementType="Argument">
            <stringProp name="Argument.name">productsGridMassActionsPercent</stringProp>
            <stringProp name="Argument.value">${__P(productsGridMassActionsPercent,100)}</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="reviewByCustomer" elementType="Argument">
            <stringProp name="Argument.name">reviewByCustomer</stringProp>
            <stringProp name="Argument.value">${__P(reviewByCustomer,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="reviewByCustomerPercent" elementType="Argument">
            <stringProp name="Argument.name">reviewByCustomerPercent</stringProp>
            <stringProp name="Argument.value">${__P(reviewByCustomerPercent,100)}</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="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="searchQuick" elementType="Argument">
            <stringProp name="Argument.name">searchQuick</stringProp>
            <stringProp name="Argument.value">${__P(searchQuick,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="searchQuick_percent" elementType="Argument">
            <stringProp name="Argument.name">searchQuick_percent</stringProp>
            <stringProp name="Argument.value">${__P(searchQuick_percent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="searchQuickFilter" elementType="Argument">
            <stringProp name="Argument.name">searchQuickFilter</stringProp>
            <stringProp name="Argument.value">${__P(searchQuickFilter,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="searchQuickFilter_percent" elementType="Argument">
            <stringProp name="Argument.name">searchQuickFilter_percent</stringProp>
            <stringProp name="Argument.value">${__P(searchQuickFilter_percent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="searchAdvanced" elementType="Argument">
            <stringProp name="Argument.name">searchAdvanced</stringProp>
            <stringProp name="Argument.value">${__P(searchAdvanced,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="searchAdvanced_percent" elementType="Argument">
            <stringProp name="Argument.name">searchAdvanced_percent</stringProp>
            <stringProp name="Argument.value">${__P(searchAdvanced_percent,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="setupAndTearDownThread" elementType="Argument">
            <stringProp name="Argument.name">setupAndTearDownThread</stringProp>
            <stringProp name="Argument.value">${__P(setupAndTearDownThread,1)}</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,30)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="sprint_identifier" elementType="Argument">
            <stringProp name="Argument.name">sprint_identifier</stringProp>
            <stringProp name="Argument.value">${__P(sprint_identifier,)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="start_time" elementType="Argument">
            <stringProp name="Argument.name">start_time</stringProp>
            <stringProp name="Argument.value">${__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="test_duration" elementType="Argument">
            <stringProp name="Argument.name">test_duration</stringProp>
            <stringProp name="Argument.value">${__P(test_duration,900)}</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="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="url_suffix" elementType="Argument">
            <stringProp name="Argument.name">url_suffix</stringProp>
            <stringProp name="Argument.value">.html</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="users" elementType="Argument">
            <stringProp name="Argument.name">users</stringProp>
            <stringProp name="Argument.value">${__P(users,100)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="view_catalog_percent" elementType="Argument">
            <stringProp name="Argument.name">view_catalog_percent</stringProp>
            <stringProp name="Argument.value">${__P(view_catalog_percent,62)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="view_product_add_to_cart_percent" elementType="Argument">
            <stringProp name="Argument.name">view_product_add_to_cart_percent</stringProp>
            <stringProp name="Argument.value">${__P(view_product_add_to_cart_percent,30)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="website_id" elementType="Argument">
            <stringProp name="Argument.name">website_id</stringProp>
            <stringProp name="Argument.value">1</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="wishlistByCustomer" elementType="Argument">
            <stringProp name="Argument.name">wishlistByCustomer</stringProp>
            <stringProp name="Argument.value">${__P(wishlistByCustomer,0)}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
          </elementProp>
          <elementProp name="wishlistByCustomerPercent" elementType="Argument">
            <stringProp name="Argument.name">wishlistByCustomerPercent</stringProp>
            <stringProp name="Argument.value">${__P(wishlistByCustomerPercent,100)}</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>
    <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"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <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>
    </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>
    </HeaderManager>
    <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/>
  
    <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">${setupAndTearDownThread}</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"/>
    </SetupThreadGroup>
    <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("configurable_products_list");
props.remove("users");
props.remove("customer_emails_list");

/* 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>
      </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>
      </BeanShellSampler>
      <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"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <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">false</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">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>
            <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"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <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">Implementation needs to be set to Java as per http://stackoverflow.com/questions/19636282/jmeter-error-in-redirect-url-for-get</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/>
  </hashTree>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - HTTP Request: Admin - Enable All Cache Types" 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="massaction_prepare_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">types</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">massaction_prepare_key</stringProp>
            </elementProp>
            <elementProp name="types" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">config,layout,block_html,collections,reflection,db_ddl,eav,config_integration,full_page,target_rule,translate,config_webservice,config_integration_api</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">types</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}/admin/cache/massEnable</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Begin by enabling all cache types</stringProp>
      </HTTPSamplerProxy>
      <hashTree/>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - HTTP Request: Admin - Refresh All Cache Types" 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="massaction_prepare_key" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">types</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">massaction_prepare_key</stringProp>
            </elementProp>
            <elementProp name="types" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">config,layout,block_html,collections,reflection,db_ddl,eav,config_integration,full_page,target_rule,translate,config_webservice,config_integration_api</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">types</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}/admin/cache/massRefresh</stringProp>
        <stringProp name="HTTPSampler.method">POST</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
        <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
        <boolProp name="HTTPSampler.monitor">false</boolProp>
        <stringProp name="HTTPSampler.embedded_url_re"/>
        <stringProp name="TestPlan.comments">Refresh all cache types</stringProp>
      </HTTPSamplerProxy>
      <hashTree/>
      <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="SetUp - Extract categories" 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"/>
          <stringProp name="HTTPSampler.response_timeout"/>
          <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">^[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">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 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"/>
          <stringProp name="HTTPSampler.response_timeout"/>
          <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>
          <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Regular Expression Extractor: Extract category url key" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">category_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 category name" enabled="true">
            <stringProp name="RegexExtractor.useHeaders">false</stringProp>
            <stringProp name="RegexExtractor.refname">category_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/>
        </hashTree>
      </hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller: category url keys loop" enabled="true">
        <stringProp name="ForeachController.inputVal">category_url_keys</stringProp>
        <stringProp name="ForeachController.returnVal">category_url_key</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">category_url_key_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 category url keys" enabled="true">
          <stringProp name="BeanShellSampler.query">import java.util.ArrayList;

// If it is first iteration of cycle then recreate category url key list
if (1 == Integer.parseInt(vars.get("category_url_key_counter"))) {
    categoryUrlKeysList = new ArrayList();
    props.put("category_url_keys_list", categoryUrlKeysList);
    props.put("category_url_key", vars.get("category_url_key"));
} else {
    categoryUrlKeysList = props.get("category_url_keys_list");
}
categoryUrlKeysList.add(vars.get("category_url_key"));</stringProp>
          <stringProp name="BeanShellSampler.filename"/>
          <stringProp name="BeanShellSampler.parameters"/>
          <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
        </BeanShellSampler>
        <hashTree/>
      </hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller: category names loop" enabled="true">
        <stringProp name="ForeachController.inputVal">category_names</stringProp>
        <stringProp name="ForeachController.returnVal">category_name</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">category_name_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 category names" enabled="true">
          <stringProp name="BeanShellSampler.query">import java.util.ArrayList;

// If it is first iteration of cycle then recreate category name list
if (1 == Integer.parseInt(vars.get("category_name_counter"))) {
    categoryNamesList = new ArrayList();
    props.put("category_names_list",categoryNamesList);
    props.put("category_name", vars.get("category_name"));
} else {
    categoryNamesList = props.get("category_names_list");
}

categoryNamesList.add(vars.get("category_name"));</stringProp>
          <stringProp name="BeanShellSampler.filename"/>
          <stringProp name="BeanShellSampler.parameters"/>
          <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
        </BeanShellSampler>
        <hashTree/>
      </hashTree>
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: Collect category" enabled="true">
        <stringProp name="BeanShellSampler.query">props.put("category_url_key", vars.get("category_url_key"));
props.put("category_name", vars.get("category_name"));</stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
      </BeanShellSampler>
      <hashTree/>
      <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="SetUp - Retrieve simple products" 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"/>
          <stringProp name="HTTPSampler.response_timeout"/>
          <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">^[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">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 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>
            </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/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+),</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/>
        </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;

// 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("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>
      <GenericController guiclass="LogicControllerGui" testclass="GenericController" testname="SetUp - Retrieve configurable products" 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"/>
          <stringProp name="HTTPSampler.response_timeout"/>
          <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">^[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">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 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.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/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_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_ids</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/>
          <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_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_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" enabled="true">
        <stringProp name="ForeachController.inputVal">configurable_product_ids</stringProp>
        <stringProp name="ForeachController.returnVal">configurable_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">configurable_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 configurable product" enabled="true">
          <stringProp name="BeanShellSampler.query">import java.util.ArrayList;
import java.util.HashMap;
import org.apache.commons.codec.binary.Base64;

// If it is first iteration of cycle then recreate productList
if (1 == Integer.parseInt(vars.get("configurable_products_counter"))) {
    productList = new ArrayList();
    props.put("configurable_products_list", productList);
} else {
    productList = props.get("configurable_products_list");
}

String productUrl = vars.get("request_protocol") + "://" + vars.get("host") + vars.get("base_path") + vars.get("configurable_products_url_keys_" + vars.get("configurable_products_counter"))+ vars.get("url_suffix");
encodedUrl = Base64.encodeBase64(productUrl.getBytes());
// Create product map
Map productMap = new HashMap();
productMap.put("id", vars.get("configurable_product_id"));
productMap.put("title", vars.get("configurable_product_names_" + vars.get("configurable_products_counter")));
productMap.put("sku", vars.get("configurable_product_skus_" + vars.get("configurable_products_counter")));
productMap.put("url_key", vars.get("configurable_products_url_keys_" + vars.get("configurable_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>
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Open Customer Grid" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}${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>
        <BeanShellPreProcessor guiclass="TestBeanGUI" testclass="BeanShellPreProcessor" testname="BeanShell PreProcessor" enabled="true">
          <stringProp name="filename"/>
          <stringProp name="parameters"/>
          <boolProp name="resetInterpreter">true</boolProp>
          <stringProp name="script">import org.apache.jmeter.protocol.http.control.CookieManager;
import org.apache.jmeter.protocol.http.control.Cookie;
CookieManager manager = sampler.getCookieManager();
Cookie cookie = new Cookie("adminhtml",vars.get("COOKIE_adminhtml"),vars.get("host"),"/",false,0);
manager.add(cookie); </stringProp>
        </BeanShellPreProcessor>
        <hashTree/>
        <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Assert Customer Grid" enabled="true">
          <collectionProp name="Asserion.test_strings">
            <stringProp name="-679437259">Customers</stringProp>
            <stringProp name="495525733">&lt;title&gt;Customers / Customers / 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/>
      </hashTree>
      
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - Search 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="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">customer_since[locale]=en_US&amp;website_id=1</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">${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.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}/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="Assert total records is not 0" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="827137952">\"totalRecords\":0</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">20</intProp>
      </ResponseAssertion>
      <hashTree/>
      <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract customer emails" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">customer_emails</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 customer ids" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">customer_ids</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/>
    </hashTree>
  <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller: customer emails loop (search result)" enabled="true">
        <stringProp name="ForeachController.inputVal">customer_emails</stringProp>
        <stringProp name="ForeachController.returnVal">customer_email</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">email_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 customer emails" enabled="true">
          <stringProp name="BeanShellSampler.query">import java.util.ArrayList;

// If it is first iteration of cycle then recreate emailsList
if (1 == Integer.parseInt(vars.get("email_counter"))) {
    emailsList = new ArrayList();
    props.put("customer_emails_list", emailsList);
} else {
    emailsList = props.get("customer_emails_list");
}
emailsList.add(vars.get("customer_email"));</stringProp>
          <stringProp name="BeanShellSampler.filename"/>
          <stringProp name="BeanShellSampler.parameters"/>
          <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
        </BeanShellSampler>
        <hashTree/>
      </hashTree>
      <ForeachController guiclass="ForeachControlPanel" testclass="ForeachController" testname="ForEach Controller: customer ids loop (search result)" enabled="true">
        <stringProp name="ForeachController.inputVal">customer_ids</stringProp>
        <stringProp name="ForeachController.returnVal">customer_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">id_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 customer ids" enabled="true">
          <stringProp name="BeanShellSampler.query">import java.util.ArrayList;

// If it is first iteration of cycle then recreate idsList
if (1 == Integer.parseInt(vars.get("id_counter"))) {
    idsList = new ArrayList();
    props.put("customer_ids_list", idsList);
} else {
    idsList = props.get("customer_ids_list");
}
idsList.add(vars.get("customer_id"));</stringProp>
          <stringProp name="BeanShellSampler.filename"/>
          <stringProp name="BeanShellSampler.parameters"/>
          <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
        </BeanShellSampler>
        <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("configurable_products_list") == null) {
    return stopTestOnError("Cannot find configurable products. 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.");
}
int orders = Integer.parseInt(vars.get("orders"));


if (orders &gt; 0) {
    int checkout_sum = Integer.parseInt(vars.get("guest_checkout_percent")) + Integer.parseInt(vars.get("customer_checkout_percent"));
    checkout_sum = checkout_sum &gt; 0 ? checkout_sum : 1;
    int users = orders * (100 / checkout_sum);
    props.put("users", users);
} else {
    props.put("users", Integer.parseInt(vars.get("users")));
}
</stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
      </BeanShellSampler>
      <hashTree/>
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller: Disable cache type?" enabled="true">
        <stringProp name="IfController.condition">"${cache_indicator}" == "1" || "${cache_indicator}" == "2"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      </IfController>
      <hashTree>
        <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: resolve cache types" enabled="true">
          <stringProp name="BeanShellSampler.query">// Default to disable all cache types
vars.put("cache_types", "config,layout,block_html,collections,reflection,db_ddl,eav,config_integration,full_page,target_rule,translate,config_webservice,config_integration_api");

if ("${cache_indicator}" == "1") {
	// Only disable Full Page Cache
	vars.put("cache_types", "full_page");
}
</stringProp>
          <stringProp name="BeanShellSampler.filename"/>
          <stringProp name="BeanShellSampler.parameters"/>
          <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
        </BeanShellSampler>
        <hashTree/>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - HTTP Request: Admin - Disable Specific Cache Types" 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="massaction_prepare_key" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">types</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">massaction_prepare_key</stringProp>
              </elementProp>
              <elementProp name="types" elementType="HTTPArgument">
                <boolProp name="HTTPArgument.always_encode">true</boolProp>
                <stringProp name="Argument.value">${cache_types}</stringProp>
                <stringProp name="Argument.metadata">=</stringProp>
                <boolProp name="HTTPArgument.use_equals">true</boolProp>
                <stringProp name="Argument.name">types</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}/admin/cache/massDisable</stringProp>
          <stringProp name="HTTPSampler.method">POST</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree/>
      </hashTree>
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller - Cache Validation - All Enabled" enabled="true">
        <stringProp name="IfController.condition">"${cache_indicator}" == "0"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      </IfController>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - HTTP Request - Cache Validation - All Enabled" 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>
                <stringProp name="Argument.desc">true</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}/admin/cache/</stringProp>
          <stringProp name="HTTPSampler.method">GET</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion - Cache Validation - All Enabled" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="860336383">TRANSLATE(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="1466502763">CONFIG(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="-1659688004">LAYOUT_GENERAL_CACHE_TAG(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="-21423984">BLOCK_HTML(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="593884002">COLLECTION_DATA(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="-751452301">EAV(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="1611481748">FPC(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="846147458">DB_DDL(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="-534412103">INTEGRATION(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="-72935653">INTEGRATION_API_CONFIG(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="330643820">WEBSERVICE(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="-479894558">REFLECTION(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="1450477507">TARGET_RULE(?s).+?&lt;span&gt;Enabled&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>
      <IfController guiclass="IfControllerPanel" testclass="IfController" testname="If Controller - Cache Validation - Only FPC Disabled" enabled="true">
        <stringProp name="IfController.condition">"${cache_indicator}" == "1"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      </IfController>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - HTTP Request - Cache Validation - Only FPC Disabled" 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>
                <stringProp name="Argument.desc">true</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}/admin/cache/</stringProp>
          <stringProp name="HTTPSampler.method">GET</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion - Cache Validation - All Disabled" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="860336383">TRANSLATE(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="1466502763">CONFIG(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="-1659688004">LAYOUT_GENERAL_CACHE_TAG(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="-21423984">BLOCK_HTML(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="593884002">COLLECTION_DATA(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="-751452301">EAV(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="-2075232047">FPC(?s).+?&lt;span&gt;Disabled&lt;/span&gt;</stringProp>
              <stringProp name="846147458">DB_DDL(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="-534412103">INTEGRATION(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="-72935653">INTEGRATION_API_CONFIG(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="330643820">WEBSERVICE(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="-479894558">REFLECTION(?s).+?&lt;span&gt;Enabled&lt;/span&gt;</stringProp>
              <stringProp name="46789595">TARGET_RULE(?s).+?&lt;span&gt;Enabled&lt;/span</stringProp>
            </collectionProp>
            <stringProp name="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 Controller - Cache Validation - All Disabled" enabled="true">
        <stringProp name="IfController.condition">"${cache_indicator}" == "2"</stringProp>
        <boolProp name="IfController.evaluateAll">false</boolProp>
      </IfController>
      <hashTree>
        <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="SetUp - HTTP Request - Cache Validation - All Disabled" 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>
                <stringProp name="Argument.desc">true</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}/admin/cache/</stringProp>
          <stringProp name="HTTPSampler.method">GET</stringProp>
          <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
          <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
          <boolProp name="HTTPSampler.use_keepalive">true</boolProp>
          <boolProp name="HTTPSampler.DO_MULTIPART_POST">false</boolProp>
          <boolProp name="HTTPSampler.BROWSER_COMPATIBLE_MULTIPART">true</boolProp>
          <boolProp name="HTTPSampler.monitor">false</boolProp>
          <stringProp name="HTTPSampler.embedded_url_re"/>
        </HTTPSamplerProxy>
        <hashTree>
          <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion - Cache Validation - All Disabled" enabled="true">
            <collectionProp name="Asserion.test_strings">
              <stringProp name="409065414">TRANSLATE(?s).+?&lt;span&gt;Disabled&lt;/span&gt;</stringProp>
              <stringProp name="2020354010">CONFIG(?s).+?&lt;span&gt;Disabled&lt;/span&gt;</stringProp>
              <stringProp name="-402279255">LAYOUT_GENERAL_CACHE_TAG(?s).+?&lt;span&gt;Disabled&lt;/span&gt;</stringProp>
              <stringProp name="-1155702187">BLOCK_HTML(?s).+?&lt;span&gt;Disabled&lt;/span&gt;</stringProp>
              <stringProp name="738976195">COLLECTION_DATA(?s).+?&lt;span&gt;Disabled&lt;/span&gt;</stringProp>
              <stringProp name="1983223762">EAV(?s).+?&lt;span&gt;Disabled&lt;/span&gt;</stringProp>
              <stringProp name="-2075232047">FPC(?s).+?&lt;span&gt;Disabled&lt;/span&gt;</stringProp>
              <stringProp name="-30791261">DB_DDL(?s).+?&lt;span&gt;Disabled&lt;/span&gt;</stringProp>
              <stringProp name="121535308">INTEGRATION(?s).+?&lt;span&gt;Disabled&lt;/span&gt;</stringProp>
              <stringProp name="1542403370">INTEGRATION_API_CONFIG(?s).+?&lt;span&gt;Disabled&lt;/span&gt;</stringProp>
              <stringProp name="1168465145">WEBSERVICE(?s).+?&lt;span&gt;Disabled&lt;/span&gt;</stringProp>
              <stringProp name="1811579203">REFLECTION(?s).+?&lt;span&gt;Disabled&lt;/span&gt;</stringProp>
              <stringProp name="49147452">TARGET_RULE(?s).+?&lt;span&gt;Disabled&lt;/span</stringProp>
            </collectionProp>
            <stringProp name="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="SetUp - Ajax Load Login Form" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
          <collectionProp name="Arguments.arguments">
            <elementProp name="blocks" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">["customer_form_login"]</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">blocks</stringProp>
            </elementProp>
            <elementProp name="handles" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">["default","customer_account_login"]</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">handles</stringProp>
            </elementProp>
            <elementProp name="originalRequest" elementType="HTTPArgument">
              <boolProp name="HTTPArgument.always_encode">true</boolProp>
              <stringProp name="Argument.value">{"route":"customer","controller":"account","action":"login","uri":"/customer/account/login/"}</stringProp>
              <stringProp name="Argument.metadata">=</stringProp>
              <boolProp name="HTTPArgument.use_equals">true</boolProp>
              <stringProp name="Argument.name">originalRequest</stringProp>
            </elementProp>
            <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>
            </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"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
        <stringProp name="HTTPSampler.contentEncoding"/>
        <stringProp name="HTTPSampler.path">${base_path}page_cache/block/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="940598773">"customer_form_login"</stringProp>
            <stringProp name="1951684663">Registered Customers</stringProp>
            <stringProp name="474011748">form_key</stringProp>
          </collectionProp>
          <stringProp 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">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">form_key</stringProp>
        </ResponseAssertion>
        <hashTree/>
      </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">false</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">false</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">false</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">false</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"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <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"/>
      </HTTPSamplerProxy>
      <hashTree/>
    </hashTree>
  
    <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Catalog Browsing By Guest" 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">${__javaScript(Math.round(props.get("users")*${view_catalog_percent}/100&gt;&gt;0))}</stringProp>
      <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
      <longProp name="ThreadGroup.start_time">1437409133000</longProp>
      <longProp name="ThreadGroup.end_time">1437409133000</longProp>
      <boolProp name="ThreadGroup.scheduler">false</boolProp>
      <stringProp name="ThreadGroup.duration"/>
      <stringProp name="ThreadGroup.delay"/>
    </ThreadGroup>
    <hashTree>
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Get arguments${__property(activeAdminThread)}(CatProdBrows)" enabled="true">
      <stringProp name="TestPlan.comments">Passing arguments between threads</stringProp>
      <stringProp name="BeanShellSampler.query">
import java.util.Random;
Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom});
}
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("simple_products_list").size());
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"));

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"));

number = random.nextInt(props.get("category_url_keys_list").size());
vars.put("category_url_key", props.get("category_url_keys_list").get(number));
vars.put("category_name", props.get("category_names_list").get(number));
vars.put("testLabel", "CatProdBrows");</stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page${__property(activeAdminThread)}(${testLabel})" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.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="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>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}${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"/>
    </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>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product 1 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}${simple_product_1_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"/>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1254853024">&lt;title&gt;${simple_product_1_name}</stringProp>
          <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/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="XPath Extractor: Extract product id" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">product_id</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">.//input[@type="hidden" and @name="product"]/@value</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert 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">product_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Ajax Review Simple Product 1 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}review/product/listAjax/id/${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="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">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product 2 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}${simple_product_2_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"/>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2142356705">&lt;title&gt;${simple_product_2_name}</stringProp>
          <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/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="XPath Extractor: Extract product id" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">product_id</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">.//input[@type="hidden" and @name="product"]/@value</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert 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">product_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Ajax Review Simple Product 2 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}review/product/listAjax/id/${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="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">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product 1 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}${configurable_product_1_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"/>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="199922279">&lt;title&gt;${configurable_product_1_name}</stringProp>
          <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>
  
    <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Abandoned Cart By Guest" 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">${__javaScript(Math.round(props.get("users")*${view_product_add_to_cart_percent}/100&gt;&gt;0))}</stringProp>
      <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
      <longProp name="ThreadGroup.start_time">1437411475000</longProp>
      <longProp name="ThreadGroup.end_time">1437411475000</longProp>
      <boolProp name="ThreadGroup.scheduler">false</boolProp>
      <stringProp name="ThreadGroup.duration"/>
      <stringProp name="ThreadGroup.delay"/>
    </ThreadGroup>
    <hashTree>
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Get arguments${__property(activeAdminThread)}(BrowsAddToCart)" enabled="true">
      <stringProp name="TestPlan.comments">Passing arguments between threads</stringProp>
      <stringProp name="BeanShellSampler.query">
import java.util.Random;
Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom});
}
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"));
vars.put("simple_product_1_uenc", simpleList.get("uenc"));

number1 = random.nextInt(props.get("simple_products_list").size());
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"));
vars.put("simple_product_2_uenc", simpleList.get("uenc"));

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_attribute_id", configurableList.get("attribute_id"));
vars.put("configurable_option_id", configurableList.get("attribute_option_id"));
vars.put("configurable_product_1_uenc", simpleList.get("uenc"));

number = random.nextInt(props.get("category_url_keys_list").size());
vars.put("category_url_key", props.get("category_url_keys_list").get(number));
vars.put("category_name", props.get("category_names_list").get(number));
vars.put("testLabel", "BrowsAddToCart");
vars.put("loadType", "Guest");</stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page${__property(activeAdminThread)}(${testLabel})" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.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="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="Ajax Load Login Form${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="blocks" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">["customer_form_login"]</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">blocks</stringProp>
          </elementProp>
          <elementProp name="handles" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">["default","customer_account_login"]</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">handles</stringProp>
          </elementProp>
          <elementProp name="originalRequest" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">{"route":"customer","controller":"account","action":"login","uri":"/customer/account/login/"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">originalRequest</stringProp>
          </elementProp>
          <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>
          </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"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}page_cache/block/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="940598773">"customer_form_login"</stringProp>
          <stringProp name="1951684663">Registered Customers</stringProp>
          <stringProp name="474011748">form_key</stringProp>
        </collectionProp>
        <stringProp 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">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">form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}${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"/>
    </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>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product 1 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}${simple_product_1_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"/>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1254853024">&lt;title&gt;${simple_product_1_name}</stringProp>
          <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/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="XPath Extractor: Extract product id" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">product_id</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">.//input[@type="hidden" and @name="product"]/@value</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert 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">product_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Ajax Review Simple Product 1 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}review/product/listAjax/id/${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="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">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product 1 Add To Cart${__property(activeAdminThread)}(${testLabel})" 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">false</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">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</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">false</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">false</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"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <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"/>
    </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="Load ${loadType}${__property(activeAdminThread)}(${testLabel})" 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">false</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">_</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}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>
    <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/>
  
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${simple_product_1_name} to your shopping cart.</stringProp>
        </collectionProp>
        <stringProp 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\":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/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product 2 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}${simple_product_2_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"/>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2142356705">&lt;title&gt;${simple_product_2_name}</stringProp>
          <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/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="XPath Extractor: Extract product id" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">product_id</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">.//input[@type="hidden" and @name="product"]/@value</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert 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">product_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Ajax Review Simple Product 2 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}review/product/listAjax/id/${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="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">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product 2 Add To Cart${__property(activeAdminThread)}(${testLabel})" 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">false</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">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</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">false</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">false</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"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <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"/>
    </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="Load ${loadType}2${__property(activeAdminThread)}(${testLabel})" 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>
            <stringProp name="Argument.desc">true</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>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</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">_</stringProp>
            <stringProp name="Argument.desc">true</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}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>
    <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/>
  
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="221533374">You added ${simple_product_2_name} to your shopping cart.</stringProp>
        </collectionProp>
        <stringProp 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="-350323026">\"summary_count\":2</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product 1 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}${configurable_product_1_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"/>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="199922279">&lt;title&gt;${configurable_product_1_name}</stringProp>
          <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/>
    
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract product sku" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">configurable_product_sku</stringProp>
      <stringProp name="RegexExtractor.regex">itemprop="sku"&gt;([^&lt;]*)&lt;\/</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default">NOT_FOUND</stringProp>
      <stringProp name="RegexExtractor.match_number">1</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Get Configurable Product Options" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</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"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <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">^[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">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${__property(activeAdminThread)}(${testLabel})" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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/V1/configurable-products/${configurable_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 1 Add To Cart${__property(activeAdminThread)}(${testLabel})" 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">false</boolProp>
            <stringProp name="Argument.value">${configurable_product_1_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">false</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">false</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="super_attribute[${configurable_attribute_id}]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">${configurable_option_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">super_attribute[${configurable_attribute_id}]</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</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"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <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"/>
    </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/>
  
        <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>
              </BeanShellPreProcessor>
        <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load ${loadType}3${__property(activeAdminThread)}(${testLabel})" 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>
            <stringProp name="Argument.desc">true</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>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</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">_</stringProp>
            <stringProp name="Argument.desc">true</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}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>
    <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/>
  
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1346272328">You added ${configurable_product_1_name} to your shopping cart.</stringProp>
        </collectionProp>
        <stringProp 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="-108122347">We don't have as many &amp;quot;${configurable_product_1_name}&amp;quot; as you requested.</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="-350323025">\"summary_count\":3</stringProp>
        </collectionProp>
        <stringProp name="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>
  
    <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Checkout By Guest" 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">${__javaScript(Math.round(props.get("users")*${guest_checkout_percent}/100&gt;&gt;0))}</stringProp>
      <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
      <longProp name="ThreadGroup.start_time">1437409133000</longProp>
      <longProp name="ThreadGroup.end_time">1437409133000</longProp>
      <boolProp name="ThreadGroup.scheduler">false</boolProp>
      <stringProp name="ThreadGroup.duration"/>
      <stringProp name="ThreadGroup.delay"/>
    </ThreadGroup>
    <hashTree>
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Get arguments${__property(activeAdminThread)}(GuestChkt)" enabled="true">
      <stringProp name="TestPlan.comments">Passing arguments between threads</stringProp>
      <stringProp name="BeanShellSampler.query">
import java.util.Random;
Random random = new Random();
if (${seedForRandom} &gt; 0) {
    random.setSeed(${seedForRandom});
}
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"));
vars.put("simple_product_1_uenc", simpleList.get("uenc"));

number1 = random.nextInt(props.get("simple_products_list").size());
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"));
vars.put("simple_product_2_uenc", simpleList.get("uenc"));

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_attribute_id", configurableList.get("attribute_id"));
vars.put("configurable_option_id", configurableList.get("attribute_option_id"));
vars.put("configurable_product_1_uenc", simpleList.get("uenc"));

number = random.nextInt(props.get("category_url_keys_list").size());
vars.put("category_url_key", props.get("category_url_keys_list").get(number));
vars.put("category_name", props.get("category_names_list").get(number));
vars.put("testLabel", "GuestChkt");
vars.put("loadType", "Guest");</stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page${__property(activeAdminThread)}(${testLabel})" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.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="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="Ajax Load Login Form${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="blocks" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">["customer_form_login"]</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">blocks</stringProp>
          </elementProp>
          <elementProp name="handles" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">["default","customer_account_login"]</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">handles</stringProp>
          </elementProp>
          <elementProp name="originalRequest" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">{"route":"customer","controller":"account","action":"login","uri":"/customer/account/login/"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">originalRequest</stringProp>
          </elementProp>
          <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>
          </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"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}page_cache/block/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="940598773">"customer_form_login"</stringProp>
          <stringProp name="1951684663">Registered Customers</stringProp>
          <stringProp name="474011748">form_key</stringProp>
        </collectionProp>
        <stringProp 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">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">form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}${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"/>
    </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>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product 1 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}${simple_product_1_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"/>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1254853024">&lt;title&gt;${simple_product_1_name}</stringProp>
          <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/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="XPath Extractor: Extract product id" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">product_id</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">.//input[@type="hidden" and @name="product"]/@value</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert 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">product_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Ajax Review Simple Product 1 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}review/product/listAjax/id/${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="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">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product 1 Add To Cart${__property(activeAdminThread)}(${testLabel})" 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">false</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">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</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">false</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">false</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"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <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"/>
    </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="Load ${loadType}${__property(activeAdminThread)}(${testLabel})" 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">false</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">_</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}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>
    <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/>
  
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${simple_product_1_name} to your shopping cart.</stringProp>
        </collectionProp>
        <stringProp 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\":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/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product 2 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}${simple_product_2_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"/>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2142356705">&lt;title&gt;${simple_product_2_name}</stringProp>
          <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/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="XPath Extractor: Extract product id" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">product_id</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">.//input[@type="hidden" and @name="product"]/@value</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert 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">product_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Ajax Review Simple Product 2 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}review/product/listAjax/id/${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="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">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product 2 Add To Cart${__property(activeAdminThread)}(${testLabel})" 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">false</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">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</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">false</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">false</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"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <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"/>
    </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="Load ${loadType}2${__property(activeAdminThread)}(${testLabel})" 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>
            <stringProp name="Argument.desc">true</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>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</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">_</stringProp>
            <stringProp name="Argument.desc">true</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}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>
    <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/>
  
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="221533374">You added ${simple_product_2_name} to your shopping cart.</stringProp>
        </collectionProp>
        <stringProp 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="-350323026">\"summary_count\":2</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product 1 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}${configurable_product_1_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"/>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="199922279">&lt;title&gt;${configurable_product_1_name}</stringProp>
          <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/>
    
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract product sku" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">configurable_product_sku</stringProp>
      <stringProp name="RegexExtractor.regex">itemprop="sku"&gt;([^&lt;]*)&lt;\/</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default">NOT_FOUND</stringProp>
      <stringProp name="RegexExtractor.match_number">1</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Get Configurable Product Options" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</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"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <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">^[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">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${__property(activeAdminThread)}(${testLabel})" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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/V1/configurable-products/${configurable_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 1 Add To Cart${__property(activeAdminThread)}(${testLabel})" 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">false</boolProp>
            <stringProp name="Argument.value">${configurable_product_1_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">false</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">false</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="super_attribute[${configurable_attribute_id}]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">${configurable_option_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">super_attribute[${configurable_attribute_id}]</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</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"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <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"/>
    </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/>
  
        <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>
              </BeanShellPreProcessor>
        <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load ${loadType}3${__property(activeAdminThread)}(${testLabel})" 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>
            <stringProp name="Argument.desc">true</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>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</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">_</stringProp>
            <stringProp name="Argument.desc">true</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}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>
    <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/>
  
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1346272328">You added ${configurable_product_1_name} to your shopping cart.</stringProp>
        </collectionProp>
        <stringProp 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="-108122347">We don't have as many &amp;quot;${configurable_product_1_name}&amp;quot; as you requested.</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="-350323025">\"summary_count\":3</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout start${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}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"/>
    </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 form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">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 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 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">form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Email Available${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp 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"/>
      <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/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"/>
    </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>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Estimate Shipping Methods${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp 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"/>
      <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/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"/>
    </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>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Billing/Shipping Information${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp 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":"12","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"/>
      <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/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"/>
    </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>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Payment Info/Place Order${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp 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":"12","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"/>
      <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/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"/>
    </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${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}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"/>
    </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>
  
    <ThreadGroup guiclass="ThreadGroupGui" testclass="ThreadGroup" testname="Checkout By Customer" 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">${__javaScript(Math.round(props.get("users")*${customer_checkout_percent}/100&gt;&gt;0))}</stringProp>
      <stringProp name="ThreadGroup.ramp_time">${ramp_period}</stringProp>
      <longProp name="ThreadGroup.start_time">1437177203000</longProp>
      <longProp name="ThreadGroup.end_time">1437177203000</longProp>
      <boolProp name="ThreadGroup.scheduler">false</boolProp>
      <stringProp name="ThreadGroup.duration"/>
      <stringProp name="ThreadGroup.delay"/>
    </ThreadGroup>
    <hashTree>
    <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="Get arguments${__property(activeAdminThread)}(CustomerChkt)" enabled="true">
      <stringProp name="TestPlan.comments">Passing arguments between threads</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("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"));
vars.put("simple_product_1_uenc", simpleList.get("uenc"));

number1 = random.nextInt(props.get("simple_products_list").size());
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"));
vars.put("simple_product_2_uenc", simpleList.get("uenc"));

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_attribute_id", configurableList.get("attribute_id"));
vars.put("configurable_option_id", configurableList.get("attribute_option_id"));
vars.put("configurable_product_1_uenc", simpleList.get("uenc"));

number = random.nextInt(props.get("category_url_keys_list").size());
vars.put("category_url_key", props.get("category_url_keys_list").get(number));
vars.put("category_name", props.get("category_names_list").get(number));

emails_index = 0;
if (!props.containsKey("customer_emails_index")) {
	props.put("customer_emails_index", emails_index);
}

try {
	emails_index = props.get("customer_emails_index");
	emails_list = props.get("customer_emails_list");
	if (emails_index == emails_list.size()) {
		emails_index=0;
	}
	vars.put("customer_email", emails_list.get(emails_index));
	props.put("customer_emails_index", ++emails_index);
}
catch (java.lang.Exception e) {
	   log.error("Caught Exception in 'Customer Checkout' thread.");
        log.info("Using default email address - user_1@example.com");
        vars.put("customer_email", "user_1@example.com");
}
vars.put("testLabel", "CustomerChkt");
vars.put("loadType", "Customer");</stringProp>
      <stringProp name="BeanShellSampler.filename"/>
      <stringProp name="BeanShellSampler.parameters"/>
      <boolProp name="BeanShellSampler.resetInterpreter">true</boolProp>
    </BeanShellSampler>
    <hashTree/>
  
      <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Home Page${__property(activeAdminThread)}(${testLabel})" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}</stringProp>
        <stringProp name="HTTPSampler.method">GET</stringProp>
        <boolProp name="HTTPSampler.follow_redirects">true</boolProp>
        <boolProp name="HTTPSampler.auto_redirects">false</boolProp>
        <boolProp name="HTTPSampler.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="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>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Login Page${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}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"/>
    </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="Ajax Load Login Form${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" guiclass="HTTPArgumentsPanel" testclass="Arguments" enabled="true">
        <collectionProp name="Arguments.arguments">
          <elementProp name="blocks" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">["customer_form_login"]</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">blocks</stringProp>
          </elementProp>
          <elementProp name="handles" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">["default","customer_account_login"]</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">handles</stringProp>
          </elementProp>
          <elementProp name="originalRequest" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">true</boolProp>
            <stringProp name="Argument.value">{"route":"customer","controller":"account","action":"login","uri":"/customer/account/login/"}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">originalRequest</stringProp>
          </elementProp>
          <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>
          </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"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <stringProp name="HTTPSampler.protocol">${request_protocol}</stringProp>
      <stringProp name="HTTPSampler.contentEncoding"/>
      <stringProp name="HTTPSampler.path">${base_path}page_cache/block/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="940598773">"customer_form_login"</stringProp>
          <stringProp name="1951684663">Registered Customers</stringProp>
          <stringProp name="474011748">form_key</stringProp>
        </collectionProp>
        <stringProp 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">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">form_key</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Login${__property(activeAdminThread)}(${testLabel})" 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"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <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"/>
    </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>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Open Category${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}${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"/>
    </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>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product 1 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}${simple_product_1_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"/>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="1254853024">&lt;title&gt;${simple_product_1_name}</stringProp>
          <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/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="XPath Extractor: Extract product id" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">product_id</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">.//input[@type="hidden" and @name="product"]/@value</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert 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">product_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Ajax Review Simple Product 1 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}review/product/listAjax/id/${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="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">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product 1 Add To Cart${__property(activeAdminThread)}(${testLabel})" 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">false</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">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</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">false</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">false</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"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <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"/>
    </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="Load ${loadType}${__property(activeAdminThread)}(${testLabel})" 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">false</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">_</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}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>
    <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/>
  
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="210217247">You added ${simple_product_1_name} to your shopping cart.</stringProp>
        </collectionProp>
        <stringProp 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\":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/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product 2 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}${simple_product_2_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"/>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="2142356705">&lt;title&gt;${simple_product_2_name}</stringProp>
          <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/>
      <XPathExtractor guiclass="XPathExtractorGui" testclass="XPathExtractor" testname="XPath Extractor: Extract product id" enabled="true">
        <stringProp name="XPathExtractor.default"/>
        <stringProp name="XPathExtractor.refname">product_id</stringProp>
        <stringProp name="XPathExtractor.xpathQuery">.//input[@type="hidden" and @name="product"]/@value</stringProp>
        <boolProp name="XPathExtractor.validate">false</boolProp>
        <boolProp name="XPathExtractor.tolerant">true</boolProp>
        <boolProp name="XPathExtractor.namespace">false</boolProp>
      </XPathExtractor>
      <hashTree/>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion: Assert 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">product_id</stringProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Ajax Review Simple Product 2 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}review/product/listAjax/id/${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="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">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Simple Product 2 Add To Cart${__property(activeAdminThread)}(${testLabel})" 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">false</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">product</stringProp>
          </elementProp>
          <elementProp name="related_product" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</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">false</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">false</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"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <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"/>
    </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="Load ${loadType}2${__property(activeAdminThread)}(${testLabel})" 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>
            <stringProp name="Argument.desc">true</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>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</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">_</stringProp>
            <stringProp name="Argument.desc">true</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}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>
    <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/>
  
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="221533374">You added ${simple_product_2_name} to your shopping cart.</stringProp>
        </collectionProp>
        <stringProp 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="-350323026">\"summary_count\":2</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Configurable Product 1 View${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}${configurable_product_1_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"/>
    </HTTPSamplerProxy>
    <hashTree>
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="199922279">&lt;title&gt;${configurable_product_1_name}</stringProp>
          <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/>
    
    <RegexExtractor guiclass="RegexExtractorGui" testclass="RegexExtractor" testname="Extract product sku" enabled="true">
      <stringProp name="RegexExtractor.useHeaders">false</stringProp>
      <stringProp name="RegexExtractor.refname">configurable_product_sku</stringProp>
      <stringProp name="RegexExtractor.regex">itemprop="sku"&gt;([^&lt;]*)&lt;\/</stringProp>
      <stringProp name="RegexExtractor.template">$1$</stringProp>
      <stringProp name="RegexExtractor.default">NOT_FOUND</stringProp>
      <stringProp name="RegexExtractor.match_number">1</stringProp>
    </RegexExtractor>
    <hashTree/>
  </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <LoopController guiclass="LoopControlPanel" testclass="LoopController" testname="Get Configurable Product Options" enabled="true">
      <boolProp name="LoopController.continue_forever">true</boolProp>
      <stringProp name="LoopController.loops">1</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"/>
        <stringProp name="HTTPSampler.response_timeout"/>
        <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">^[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">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${__property(activeAdminThread)}(${testLabel})" enabled="true">
        <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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/V1/configurable-products/${configurable_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 1 Add To Cart${__property(activeAdminThread)}(${testLabel})" 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">false</boolProp>
            <stringProp name="Argument.value">${configurable_product_1_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">false</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">false</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="super_attribute[${configurable_attribute_id}]" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</boolProp>
            <stringProp name="Argument.value">${configurable_option_id}</stringProp>
            <stringProp name="Argument.metadata">=</stringProp>
            <boolProp name="HTTPArgument.use_equals">true</boolProp>
            <stringProp name="Argument.name">super_attribute[${configurable_attribute_id}]</stringProp>
          </elementProp>
          <elementProp name="form_key" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</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"/>
      <stringProp name="HTTPSampler.response_timeout"/>
      <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"/>
    </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/>
  
        <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>
              </BeanShellPreProcessor>
        <hashTree/>
    </hashTree>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Load ${loadType}3${__property(activeAdminThread)}(${testLabel})" 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>
            <stringProp name="Argument.desc">true</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>
            <stringProp name="Argument.desc">true</stringProp>
          </elementProp>
          <elementProp name="_" elementType="HTTPArgument">
            <boolProp name="HTTPArgument.always_encode">false</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">_</stringProp>
            <stringProp name="Argument.desc">true</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}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>
    <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/>
  
      <ResponseAssertion guiclass="AssertionGui" testclass="ResponseAssertion" testname="Response Assertion" enabled="true">
        <collectionProp name="Asserion.test_strings">
          <stringProp name="-1346272328">You added ${configurable_product_1_name} to your shopping cart.</stringProp>
        </collectionProp>
        <stringProp 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="-108122347">We don't have as many &amp;quot;${configurable_product_1_name}&amp;quot; as you requested.</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="-350323025">\"summary_count\":3</stringProp>
        </collectionProp>
        <stringProp name="Assertion.test_field">Assertion.response_data</stringProp>
        <boolProp name="Assertion.assume_success">false</boolProp>
        <intProp name="Assertion.test_type">2</intProp>
      </ResponseAssertion>
      <hashTree/>
    </hashTree>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout start${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}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"/>
    </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 form key" enabled="true">
        <stringProp name="RegexExtractor.useHeaders">false</stringProp>
        <stringProp name="RegexExtractor.refname">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/>
      <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 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">form_key</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>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Estimate Shipping Methods${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp 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"/>
      <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/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"/>
    </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>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Billing/Shipping Information${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp 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":5,"regionCode":"AR","region":"Arkansas","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"/>
      <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/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"/>
    </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>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout Payment Info/Place Order${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <boolProp name="HTTPSampler.postBodyRaw">true</boolProp>
      <elementProp 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":5,"regionCode":"AR","region":"Arkansas","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"/>
      <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/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"/>
    </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>
  
    <GaussianRandomTimer guiclass="GaussianRandomTimerGui" testclass="GaussianRandomTimer" testname="Random Timer" enabled="true">
      <stringProp name="ConstantTimer.delay">${think_time_delay_offset}</stringProp>
      <stringProp name="RandomTimer.range">${think_time_deviation}</stringProp>
    </GaussianRandomTimer>
    <hashTree/>
  
    <HTTPSamplerProxy guiclass="HttpTestSampleGui" testclass="HTTPSamplerProxy" testname="Checkout success${__property(activeAdminThread)}(${testLabel})" enabled="true">
      <elementProp name="HTTPsampler.Arguments" elementType="Arguments" 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}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"/>
    </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>
  
    <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"/>
    </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">false</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">false</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">false</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">false</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"/>
          <stringProp name="HTTPSampler.response_timeout"/>
          <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/>
      <BeanShellSampler guiclass="BeanShellSamplerGui" testclass="BeanShellSampler" testname="SetUp - BeanShell Sampler: Clear properties" enabled="true">
        <stringProp name="BeanShellSampler.query">props.remove("category_url_key");
props.remove("category_name");
props.remove("simple_products_list");
props.remove("configurable_products_list");
props.remove("users");
props.remove("customer_emails_list");</stringProp>
        <stringProp name="BeanShellSampler.filename"/>
        <stringProp name="BeanShellSampler.parameters"/>
        <boolProp name="BeanShellSampler.resetInterpreter">false</boolProp>
      </BeanShellSampler>
      <hashTree/>
    </hashTree>
  
    <ResultCollector guiclass="ViewResultsFullVisualizer" testclass="ResultCollector" testname="View Results Tree" enabled="true">
      <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>
          <threadCounts>true</threadCounts>
        </value>
      </objProp>
      <objProp>
        <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>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"/>
    </ResultCollector>
    <hashTree/>
  
    <ResultCollector guiclass="TableVisualizer" testclass="ResultCollector" testname="Detailed URLs report" enabled="true">
      <boolProp name="ResultCollector.error_logging">false</boolProp>
      <objProp>
        <name>saveConfig</name>
        <value class="SampleSaveConfiguration">
          <time>true</time>
          <latency>false</latency>
          <timestamp>false</timestamp>
          <success>false</success>
          <label>true</label>
          <code>false</code>
          <message>false</message>
          <threadName>false</threadName>
          <dataType>false</dataType>
          <encoding>false</encoding>
          <assertions>false</assertions>
          <subresults>false</subresults>
          <responseData>false</responseData>
          <samplerData>false</samplerData>
          <xml>false</xml>
          <fieldNames>true</fieldNames>
          <responseHeaders>false</responseHeaders>
          <requestHeaders>false</requestHeaders>
          <responseDataOnError>false</responseDataOnError>
          <saveAssertionResultsFailureMessage>false</saveAssertionResultsFailureMessage>
          <assertionsResultsToSave>0</assertionsResultsToSave>
          <url>true</url>
          <hostname>true</hostname>
          <threadCounts>true</threadCounts>
          <sampleCount>true</sampleCount>
        </value>
      </objProp>
      <stringProp name="filename">${report_save_path}/detailed-urls-report.log</stringProp>
    </ResultCollector>
    <hashTree/>
  
    <ResultCollector guiclass="SummaryReport" testclass="ResultCollector" testname="Summary Report" enabled="true">
      <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">${report_save_path}/summary-report.log</stringProp>
    </ResultCollector>
    <hashTree/>
  </hashTree>
    <WorkBench guiclass="WorkBenchGui" testclass="WorkBench" testname="WorkBench" enabled="true">
      <boolProp name="WorkBench.save">true</boolProp>
    </WorkBench>
  </hashTree>
</jmeterTestPlan>