2017-08-24 25 views
1

下面是腳本的JMeter結構: Test Plan + User Defined Variables + - votes_id: ${__P(votes_id,${__Random(11,14)})} + ... + Thread Group + + Throughput Controller1 + + + Http Request1 + + Throughput Controller2 + + + Http Request2 + + Throughput Controller3 + + + Http Request3 + + + Http Request4 + + + - paramater1:${votes_id} JMeter的只有()由__Random產生的一個號碼發送請求

問題:http請求只能用相同NUM發送。

在組paramater1:$ {__隨機(11,14)},它適用於11至14

注隨機數:我也嘗試組件CSV數據集配置。當我禁用吞吐量控制器1,吞吐量控制器2時,Http Request4與多個號碼一起工作。

如何使用CSV數據集配置以隨機數發送請求參數?

謝謝。

回答

1
  1. 作爲每Where can functions and variables be used?章:

    函數和變量可以被寫入到任何測試組件的任何字段

  2. As per What can functions do

    函數是線程之間共享。測試計劃中的每次函數調用都由一個單獨的函數實例處理。

所以你基本上不需要定義一個變量,你可以直接在HTTP請求參數部分

Test Plan 
+ ... 
+ Thread Group 
+ + Throughput Controller1 
+ + + Http Request1 
+ + Throughput Controller2 
+ + + Http Request2 
+ + Throughput Controller3 
+ + + Http Request3 
+ + + Http Request4 
+ + + - paramater1:${__P(votes_id,${__Random(11,14)})} 

這樣的功能將分別由每個被評估使用__Random()功能線程,因此每次調用函數時都會得到一個新值。

查看Apache JMeter Functions - An Introduction瞭解關於JMeter功能概念的更多信息。

+0

它運作良好!請注意,**在運行時生成唯一的隨機值在CPU和內存方面非常昂貴,因此只需在測試**之前創建數據,因此我嘗試使用CSV數據集配置替換__Random()函數並失敗。 。詳細信息:輸入a.csv與11 \ n12 \ n13 \ n14,然後請求參數將只包含13.當我禁用吞吐量控制器1和吞吐量控制器2時,它發送請求與a.csv中的所有數字 – Song

0

不要爲其他然後初始值使用User Defined Variables

注意,所有測試計劃的UDV元素 - 無論身在何處,他們都 - 在開始處理。

UDV不應與每次調用時生成不同結果 的函數一起使用。只有第一個函數調用 的結果將被保存在變量中。但是,UDV可與 函數一起使用,例如__P()

要在測試運行期間定義變量,請參閱用戶參數。 UDV 按照它們在計劃中出現的順序進行處理,從頂部到底部爲 。

使用User Parameters並將其作爲HTTP請求的預處理器子進程。每次都會被調用。