A cursory look shows a bunch of HTML errors including duplicate ids that might be impacting what TIDY does to your HTML (and the XPATH runs over the TIDY). Will need to check
right now it looks If you arent sure of the order then you can always run two regexes . If your text is always going to be remove then you can use that bit of information regards deepak On Tue, Oct 25, 2011 at 4:11 PM, David Luu <[email protected]> wrote: > Sorry, didn't know that. Here's the URL > http://dlshare.s3.amazonaws.com/shoppingCart.txt > > On Tue, Oct 25, 2011 at 3:42 PM, Deepak Shetty <[email protected]> wrote: > > > hi > > the mailing list rejects attachments. upload it somewhere and send a link > > > > regards > > deepak > > > > On Tue, Oct 25, 2011 at 3:38 PM, David Luu <[email protected]> wrote: > > > > > JMeter v2.5 on Windows > > > > > > Added debug sampler, it did indeed match one only (the first item in > > > shopping list, top down order): > > > > > > ORDERITEMIDS=7249682 > > > ORDERITEMIDS_1=7249682 > > > ORDERITEMIDS_matchNr=1 > > > > > > Attached is HTML from the HTTP sampler response of the shopping cart > page > > > for which we extract the data. I did a text search on "removeItemLink" > > and > > > did get 3 entries for the link for 3 cart items. > > > > > > I also did a test replacing XPath extractor with regex extractor and > used > > > this pattern to do a global/multi match against: > > > > > > .+class="removeItemLink".+id="(\d+)".+ > > > > > > granted if the HTML attribute order ever changed, it would break the > > regex > > > but wouldn't break XPath. > > > > > > In the replacement, I left everything else intact, and used same > variable > > > name for the cart items IDs. The regex version worked fine, getting all > 3 > > > cart items. > > > > > > So there's no loop problem for sure. Seems to be an XPath extractor > > problem > > > here. > > > > > > On Tue, Oct 25, 2011 at 3:16 PM, Deepak Shetty <[email protected]> > > wrote: > > > > > >> what version of Jmeter? > > >> Dont go by Firebug it looks at the DOM whereas JMeter will have to > look > > at > > >> the source html . > > >> > > >> Add a Debug Sampler under your HTTP Sampler and also add a view > results > > >> tree > > >> listener. > > >> If your debug sampler shows your multiple values correctly the problem > > is > > >> in > > >> the loop > > >> > > >> If your debug sampler only shows a single value , then you need to > look > > at > > >> the HTML response (in view results tree listener) that your xpath > > >> extractor > > >> is a child of and see if you have multiple nodes satisfying your > > condition > > >> or your HTML is different from what you expect. > > >> If the HTML looks right , then upload a copy of the html and send the > > link > > >> > > >> regards > > >> deepak > > >> > > >> On Tue, Oct 25, 2011 at 1:27 PM, David Luu <[email protected]> > wrote: > > >> > > >> > Hi, just wanted to check to see if I misconfigured something or > XPath > > >> > defined correctly. Here's the setup: > > >> > > > >> > We have HTTP request sampler to hit user's shopping cart that > returns > > >> HTML > > >> > in response. The HTML is dynamic based on what user already has in > > cart. > > >> > > > >> > I want the JMeter test to remove items in cart, and we do that by > > >> fetching > > >> > the item ID stored in the links to then remove item by make HTTP > POST > > in > > >> > another sampler with the item ID. The XPath is as follows: > > >> > > > >> > //a[@class='removeItemLink']/@id > > >> > > > >> > We identify the item ID as an attribute in links with class type > > >> > 'removeItemLink'. Unfortunately, or to play it safe, we don't know > if > > >> the > > >> > generated HTML always has same fixed pattern text of whether the > class > > >> > attribute is always before or after the ID attribute, hence I chose > to > > >> use > > >> > XPath extractor rather than a regular expression extractor to get > the > > >> ID. > > >> > ID > > >> > value is also dynamic and may not be fixed length. > > >> > > > >> > I enabled Tidy with quiet mode. Later also enabled report errors > show > > >> > warnings, and disabled quiet mode, those options didn't help. The UI > > and > > >> > the > > >> > docs don't mention anything about settings to match once or match > all, > > >> etc. > > >> > So believe matching number determined by the XPath expression. > > >> > > > >> > used XPath extracted variable reference name ORDERITEMIDS > > >> > > > >> > and then had a ForEach controller run a HTTP request sampler to POST > > to > > >> API > > >> > to remove items. But during execution, it only ran once, but it did > > work > > >> > correctly for the one item that it extracted. ForEach controller > > >> configured > > >> > as follows: > > >> > > > >> > input var prefix = ORDERITEMIDS > > >> > output var name = returnVar > > >> > checked add "_" before number > > >> > > > >> > and in HTTP sampler inside the foreach, reference variable as > > >> ${returnVar} > > >> > > > >> > I tested the XPath with Firebug in Firefox and it matched all the > > items > > >> in > > >> > the cart unlike JMeter, and I know the basics of XPath, and that > > appears > > >> to > > >> > be the correct XPath. > > >> > > > >> > So is this a bug with JMeter or am I doing something wrong? Or wrong > > >> XPath > > >> > somehow still? > > >> > > > >> > Regards, > > >> > David > > >> > > > >> > > > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [email protected] > > > For additional commands, e-mail: [email protected] > > > > > >

