我正在使用Jmeter 對Web 服務SOAP 進行負載測試,在非GUI 模式下,自300 個線程數開始,我開始收到錯誤,這是透過「回應斷言」檢測到的,規則如下:「測試失敗:文本不期望包含 /"rta":"FAIL"/"。
在 GUI 模式下,我可以在「檢視結果樹」中看到幾個範例的錯誤:
IO 錯誤:網路介面卡無法建立連接
我目前的Oracle配置是:
select current_utilization, limit_value
from v$resource_limit
where resource_name='sessions';
到達時間:
current_utilization, limit_value
177, 987
游標
select max(a.value) as highest_open_cur, p.value as max_open_cur
from v$sesstat a, v$statname b, v$parameter p
where a.statistic# = b.statistic#
and b.name = 'opened cursors current'
and p.name= 'open_cursors'
group by p.value;
到達時間:
highest_open_cur, max_open_cur
241, 4000
¿
更多資訊: ...
資料庫版本:
Oracle Database 12c Standard Edition Release 12.2.0.1.0 - 64bit Production
TNS for 64-bit Windows: Version 12.2.0.1.0 - Production
Jmeter設定:
Inter® Xeon® Gold 6126 CPU @2.6 Ghz
4 Sockets, 4 Virtual Processors
Java HotSpot(TM) 64-Bit Server VM (build 25.162-b12, mixed mode)
HEAP=-Xms20G -Xmx20G -XX:MaxMetaspaceSize=128m
Windows Server 2016 Standard
測試計劃:
- 線程組(線程數 320、加速週期 37、循環計數 1)
- 5 個 HTTP 請求,每個請求有 1 個斷言。
- 1 個監聽器 PerfMon 指標收集器
答案1
該錯誤是由Oracle JDBC 驅動程式當無法與資料庫建立連線時。
這是另一個例子患有同樣問題的人。
我的期望是您的應用程式沒有正確使用連接池模式(或根本沒有實現),因此執行查詢後連線不會關閉。我建議使用分析器工具檢查您的應用程序,例如JProfiler或者你的工具包- 這樣您將對正在發生的事情有更清晰的認識。
解決問題的另一種方法是針對資料庫執行負載測試,即直接執行查詢,而無需使用 JMeter 的臨時 SOAP API 調用JDBC 請求採樣器。透過這種方式,您將能夠表明資料庫運作正常,問題出在 Java 應用程式上(反之亦然)。看使用 JMeter 建立資料庫測試計劃的真正秘密熟悉使用 JMeter 進行資料庫負載測試的概念。