2017-07-19 19 views
2

我有一個HTML表格。在一排,我有這樣的名字,電子郵件,網址,日期等衆多數據:從JMeter的html表中獲取特定的行

<td> 
    <a href="mywebsite.com/events/634" title="Show">15</a> 
</td> 
<td>2017-07-18 11:00</td> 
<td>Teszt SK</td> 
<td>Test Trevor<small></small></td> 
<td>2017-07-18 12:00</td> 
<td><span class="label label-primary">Already in</span></td> 

我希望得到其中名稱等於我${name}變量URL的最後一部分。

的URL看起來像:http<nolink>://mywerbsite.com/event/123

所以我希望得到的是123,並把它變成我的${eventid}變量。

問題是,事實上,通常有多個用戶事件。所以我希望JMeter在第一次發現時停下來。我怎麼做?

回答

0

添加正則表達式的要求後處理器

正則表達式:mywebsite.com/events/(\d+)」(*)測試特雷弗

模板$ 1 $

賽事號1

它會返回第一行(選中)

+0

的第一ř ow並不總是正確的。如果多個用戶創建了這些事件,那麼第二個創建者事件將處於頂部。我想查看這個例子中的名字Trevor Trevor並且只能得到Trevors事件的ID。 – Bert

+0

修復特定名稱的解決方案 – user7294900

+0

仍然不行。 :/ $ {eventid}變量似乎仍然是空的,因爲當我嘗試去一個URL mywerbsite.com/events/ $ {eventid}/create_report時,我從字面上獲取變量,而不是它的值。最後一部分'(。*)測試Trevor'攪亂腳本 – Bert

1

相關的XPath表達式會是這樣的:

substring-after(//td[text()='Test Trevor']/parent::*/td/a/@href,'events/') 

演示:

JMeter Xpath Demo

參考文獻:

+0

我可以使用'$ {name}'而不是測試Trevor在這個? – Bert

+0

當然可以,只要確保它具有「好」價值 –

+0

另外,如果我只是使用Chrome的開發工具,請右鍵單擊並獲取我的XPath以查找我正在查找的值?如果我在網站上爲此名稱執行此操作,則會得到以下內容: '// * [[ @ div = div/div [2]/div/table/tbody/tr [1]/td [4]/text()' /div [4]/div [2] 所以,如果我讀手冊正確的,我需要的**子,後**功能。難道這是正確的呢? '子-之後('// * [@ ID = 「頁包裝」] /格[4]/DIV [2]/DIV/DIV/DIV [2]/DIV /表/ tbody的/ TR [1]/td [4]/$ {name}','events /')' – Bert

0

好吧,經過幾次嘗試,我想出了一個相當複雜的答案,但它確實有效。一些小的調整仍然需要,但它的工作。這裏有一些截圖。