PTS支持哪些壓測模型?
PTS目前支持并發模式、TPS模式、摸高模式、浪涌模式、震蕩模式和梯度6種壓測模型,您創建場景-施壓配置頁面選擇您想使用的壓測模型。
支持哪些方式引用參數,如何引用?
支持通過響應提取、參數文件、系統變量和系統函數4種方式引用參數,您可在壓測的url、header和body中輸入$,在彈出的對話框中選擇相應參數。

如何把前一個API的輸出作后一個API的輸入?
您可以通過響應提取把前一個API的輸出提取出來,賦值給一個變量,然后將變量作為后一個API的輸入參數,具體使用請參見“響應提取”。
參數文件大小限制是多少?
默認參數文件列數最多為20列,單個參數文件大小為100MB,所有參數文件大小最大為2GB。
如何使用參數化模擬多用戶注冊或登錄?
若您在壓測時需要模擬多用戶注冊的場景,可以通過在壓測場景中導入包含用戶名和密碼的參數文件,構造壓測API時關聯導入的參數來實現。
為什么文件參數上傳會失敗?
可能是文件格式不對,文件要求是.csv格式的,建議先下載好模板,在模板上添加內容。保存時要求是UTF-8格式的,可以在windows系統上用記事本打開-另存為-選擇utf-8保存。
如何給域名配置host?
您可以通過以下2種方法實現:
方法一:PTS支持域名綁定,您可以指定某個域名對應的IP地址,壓測時壓測流量將直接訪問綁定的IP地址,實現對目標服務的壓測。詳情請見“域名綁定”。
方法二:在壓測url直接配置IP地址,并在header定義中添加Host頭,header的值設置為域名。

并發模式,服務端收到的請求為什么會大于最大并發量?
并發量VU為虛擬用戶數,一個用戶每秒能發幾個請求取決于服務端的響應時間,如果服務端的響應時間小于1秒,則發起總請求會大于最大并發數。
是否支持從其他工具導入壓測配置?
當前可支持Postman腳本導入和使用Chrome瀏覽器錄制的腳步導入,腳本導入后PTS將自動讀取腳本中的url及請求信息并生成場景。Postman腳本導入請參見“導入場景”,Chrome瀏覽器錄制請參見“流量錄制”。
PTS是否可以壓測微信小程序?
PTS支持壓測微信小程序。PTS支持HTTP/HTTPS協議的壓測,無論客戶端是自研的App、移動端網頁、PC端網頁、微信小程序,還是C/S結構的軟件,只要協議是HTTP/HTTPS,PTS就能支持壓測。
是否支持設置定時開始壓測?
創建場景并保存后,在場景列表中選擇“更多-定時啟動”,即可設置開始壓測的時間點,到開始時間后平臺會自動發起壓測。

正在壓測如何查看壓測指標?
啟動壓測后,在場景列表中點擊狀態列的“壓測中”進入實時壓測報告頁面,在界面中可查看實時壓測的指標。

如何保護被壓端服務,防止被壓端服務異常影響業務可用性?
當被壓端服務異常時,通過實時測試報表,您可以看到請求 RT 變高,甚至出現請求失敗。
為了防止服務異常,您可以在測試場景中,設置被壓服務 SLA(服務可用性指標),例如:限制響應時間<100ms,成功率>9.99%。當壓測指標觸發被壓服務 SLA 水位線時,自動停止壓測任務。
SLA支持哪些規則和通知機制呢?
PTS的SLA支持的規則包括:響應時間、成功率和TPS,并支持三種級別的敏感度配置。觸發SLA規則后可支持立即停止壓測,目前暫未支持通知機制。
測試報告會在控制臺保存多久?
默認保留30天,30天后將自動清理過期數據。在過期前,用戶可下載測試報告,在本地進行保存。
哪些資源會占用PTS的存儲空間?
PTS的測試報告文件(包含離線報告文件和tcp抓包文件)、參數文件和form-data文件都會占用用戶的存儲空間額度,默認每個用戶總存儲空間為5GB,如果存儲空間被占滿,則需要適當刪除一些資源才能繼續壓測。
請求成功率和業務成功率有什么區別?
請求成功率是請求發送并成功返回http狀態碼的數量除以總請求數,業務成功率是斷言結果為成功的數量除以總請求數。
為什么服務端是正常的,但壓測過程中還是有很多超時失敗呢?
當并發數逐漸增加,請求量增大時,服務器的響應處理速度會越來越慢,當請求響應時長大于配置的超時時間時,請求會主動斷開,并認定為請求超時。超時時間的配置請參見“基本請求信息”。
多個接口應該放在同一個任務還是不同任務壓測?
在同一任務下可添加多個壓測請求,同任務下的請求是按順序串行執行的,前一個請求的輸出可以作為后一個請求的輸入(具體可參見“響應提取”);而不同任務間的壓測請求是相對獨立的,不是按順序執行的,故暫不可相互傳遞參數,但不同任務可通過并發權重比例來控制每個任務的最大并發量,從而達到控制各個請求的最大并發量,而同任務下的請求可發起最大并發量是相同的。

什么是99、95、90、75和50分位RT(ms)?
xx分位RT(ms)是指在一段時間內,網絡請求的平均延遲中,超過xx%的數據點所處的延遲值。它反映了網絡延遲的分布情況,可以用來衡量網絡性能的穩定性和可靠性。
在實際應用中,可以通過對請求延遲數據進行排序,然后找到xx%的數據點所處的位置,得到xx分位 RT(ms)值,這個值可以用來衡量網絡性能的穩定性和可靠性,以便更好地進行性能優化和故障排除。
參數替換的時候,是否會自動識別參數值的類型是字符串還是整型?

系統不會自動識別替換的參數值到底是字符串類型還是數字整型,參數替換只是進行文本的替換,比如上圖中name的值為1,替換后為{“Name”: “1”};如果替換前是{"Name": ${name}},那么替換后為{"Name": 1}。
body定義中的Content-Type中,什么是x-www-form-urlencoded?
答:x-www-form-urlencoded是一種編碼方式,用于將表單數據編碼為URL格式,以便在HTTP請求中傳遞數據。
在HTTP請求中,如果需要傳遞表單數據,通常使用POST方法,并將數據編碼為x-www-form-urlencoded格式。這種編碼方式將表單數據中的每個字段名稱和值用=和&符號連接起來,形成一個字符串。例如,假設有一個表單數據如下:
name=John&age=30&email=john@example.com
使用x-www-form-urlencoded編碼后,這個表單數據將被編碼為:
name=John&age=30&email=john%40example.com
在HTTP響應中,如果服務器需要解析這個編碼的字符串,可以使用相同的方式將其解碼成表單數據。
x-www-form-urlencoded是一種廣泛使用的編碼方式,適用于HTTP請求中的表單數據傳遞。
如何判斷壓測中的接口業務是否正常,以及統計異常數?
如果您的接口可以依據返回值判斷業務是否正常,可以使用檢查點功能來判斷本次請求是否正常。檢查點功能支持檢查響應body、響應header、響應狀態碼和變量,在業務配置了檢查點之后,在壓測中頁面以及壓測報告頁面可以查看業務的成功率和異常數。具體使用請參見“檢查點(斷言)”。
為什么在API的Header定義頁,不能編輯Content-Type的值?
Header定義頁中的Content-Type的值由Body定義頁決定,不能直接在Header定義頁編輯,您可以在Body定義頁中選擇PTS支持的Content-Type類型或者自定義輸入。具體使用請參見“Body配置”。
壓測報告詳情有錯誤信息,為什么在采樣日志中沒看到對應的錯誤日志?
日志采樣是按照設置的采樣率來采集的,如果您設置采樣率不是100%,并且該類錯誤占比較小的話,可能會沒有采集到對應的日志,所以在采樣日志列表中看不到。
壓測報告中的發送和接收的流量是如何統計的?
PTS中的發送流量、接收流量的具體的計算方式如下:
發送流量:發送的實際的HTTP請求體大小。
接收流量:HTTP響應頭字節數+Content-Length(沒有該值則計算響應的Body的實際字節數)。
基于上述發送和接收流量的計算方式,那么PTS壓測報告中統計的每秒發送和接收的流量值的計算邏輯如下:
PTS統計的每秒發送流量值為多臺施壓機壓測過程中每秒發送流量之和。
PTS統計的每秒接收流量值為多臺施壓機壓測過程中每秒接收流量之和。
為什么調試和壓測時Body中JSON的格式和設置的不同(如空格、回車)?
通常在請求體編輯的時候,為了可讀性會將JSON進行適當地換行、縮進,如下圖所示。

而PTS實際在處理請求構建時會去除鍵和值以外的空白、換行字符。調試的請求詳情展示的是實際請求的報文內容。

狀態碼9xx是什么錯誤?
9xx是PTS自定義的錯誤碼,主要是壓測端與被壓測服務間網絡原因導致的錯誤,具體如下:
RequestParseErr = 900 //解析錯誤(請求成功,但包解析失敗)
RequestErrOther = 901 //其他錯誤(除了以下情況的請求失敗)
RequestErrConnectionRefused = 903 //連接拒絕 (如服務端的服務沒起來)
RequestErrNoSuchHost = 904 //no such host(如無效IP或域名)
RequestErrEOF = 906 //EOF錯誤
RequestConnectReset = 907 //connection reset by peer 錯誤
RequestErrTimeout = 920 //超時(包含所有階段的超時)
RequestErrDnsTimeout = 921 //dns解析超時
RequestErrTcpConnectionTimeout = 922 //tcp連接超時
RequestErrTlsHandshakeTimeout = 923 //tls握手超時
RequestErrGetConnectionTimeout = 924 //建立連接超時
RequestErrWroteHeadersTimeout = 925 //發送包頭超時
RequestErrWroteRequestTimeout = 926 //發送body超時
RequestErrGotFirstRespByteTimeout = 927 //接收第一個響應數據超時
RequestErrContentTransferTimeout = 928 //接收響應數據超時