簡體   English   中英

Jmeter中REST服務測試的可變路徑參數

[英]Variable Path Param for REST service testing in Jmeter

我正在測試具有路徑參數的 REST 服務。

/my-service/v1/Customer/order/{ordernumber}

我想為每個請求將數字增加 1。 如何在 Jmeter 中實現這一點? 直到現在我一直在傳遞一個固定的路徑參數,因此我們的測試結果只有一個輸入參數。

/my-service/v1/Customer/order/5247710017785924

開始時最好將您的初始訂單值放入用戶定義的變量中

給定起始訂單為“5247710017785924”,您需要創建一個“ordernumber”變量並將其值設置為5247710017785924。

在每個請求之后,您可以通過使用以下代碼將 BeanShell 后處理器添加到 HTTP 采樣器來增加變量值:

long ordernumber = Long.parseLong(vars.get("ordernumber"));
ordernumber++;
vars.put("ordernumber",String.valueOf(ordernumber));

並將您的 HTTP Sampler 路徑中的 ordernumber 設置為

/my-service/v1/Customer/order/${ordernumber}

沒有一個解決方案對我有用。 這是我所做的

  1. 定義如下所示的 HTTP 請求並將路徑/api/v2/state/find/${id}到請求中
  2. 右鍵單擊HTTP request --> Preprocessor -> User Parameters ->Add variable -> input id and it's value
  3. 啟動 HTTP 請求,這應該可以工作

HTTP 請求

用戶參數

使用 JMeter Counter組件來增加變量。

這個問題與路徑參數有關,其中訂單號的值在每個連續請求中遞增 1。 但是我遇到了一個場景,我得到了一個訂單號列表,我不得不請求這些訂單號。 所以,我要回答這個問題,這個解決方案可以應用於這兩種情況。

我所做的是將所有參數路徑放在一個 CSV 文件中,就像這樣 -

/my-service/v1/Customer/order/5247710017785924
/my-service/v1/Customer/order/5247710017785976
/my-service/v1/Customer/order/5247710017785984
/my-service/v1/Customer/order/5247710017785991

然后我遍歷 CSHTTPle 中的路徑列表並向服務器發出 http 請求。 要了解如何遍歷 CSV 文件並在 Jmeter 中發出 http 請求,您可以查看此鏈接:

https://stackoverflow.com/a/47159022/5892553

我使用了一個BeanShell PreProcessor來生成一個 id

vars.put("id", UUID.randomUUID().toString());

然后使用路徑Http Request

/api/v1/event/${id}/

賓果游戲!!!

您可以使用 JMeter 計數器:

  1. 右鍵單擊您的線程組(在測試計划下)
  2. 選擇添加->配置元素->計數器
  3. 設置起始值 (0)、增量 (1)、最大值、導出變量名稱 ("ordernumber")

然后您可以使用導出的變量名稱作為路徑參數:/my-service/v1/Customer/order/${ordernumber}

參考建議使用用戶參數將客戶或訂單ID放入API的貢獻者。 這是有效的,但除非有一種批量加載用戶的方法,否則這對於大量數據是不可擴展的。 如果您只想要一些(最多可能十個),因為它們都必須手動輸入,這很有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM