自動化測試平臺-Httprunner-接口、UI、協議。html
平臺語言-JAVA-UI-Selenium(java版的)、Appium(java版的)、接口-Httpclient、Jmeter。(Jmeter性能測試工具,能夠作接口自動化,java寫的。)java
平臺語言-Python-locust(接口、性能)。linux
linux下載tgz格式的,windows下載gpg格式的。web
source是源碼。json
Jmeter:windows
總體結構:Java(可擴展)、腳本開發(錄製、手寫-Http協議:"get、post"、自定義)、場景設計、測試結果。服務器
Get-請求url、參數、請求頭。cookie
Post-請求url、參數、請求頭、數據。數據有3種:表單(name=value)、不規範的自定義數據(json、xml、隨便的數據)(使用消息體數據)、附件(使用文件上傳)session
排查問題是就看上面標紅的是否有問題。看這個請求特有的頭信息。併發
請求頭:html/xml:text json:application/json
進程是管理單元、線程是操做單元。操做都是經過線程完成的。
用戶其實指的就是線程(lr jmeter ab)或協程(locust)。
用戶-真實用戶(實際中)、線程(壓測時)。1萬個用戶達到的同一時刻的併發可能只有50個。
cookie和session都是服務器產生的,存在客戶端叫cookie,存在服務器端叫session.
服務器返回set-cookie.
cookie和session都是保存服務器和客戶端狀態的,由於http協議是一個無狀態的協議。cookie和session是共存的,核心內容在session裏面,id號存在cookie裏面。
Jmeter:
HTTP請求默認值
HTTP Cookie管理器
HTTP信息頭管理器
建立HTML數據(CSV數據文件設置) 將請求中的數據,替換成${變量名}
登陸業務控制器(僅一次控制器):
首頁(GET)
登陸(Post)
響應斷言
斷言持續時間
登陸後頁面
高斯隨機定時器 (首頁、登陸、登陸後頁面執行後都會停留思考時間,若是放在首頁下面,則只有首頁會停留)
建立HTML(簡單控制器):
點擊建立HTML
獲取token(邊界提取器)
建立HTML(POST)
newtoken 前置處理器(Bean Shell PreProcessor) import com.huicewang.*;
String token = vars.get("token);
String newtoken = Tools.decode(token);
vars.put("newtoken",newtoken);
HTTP信息頭管理器 (${newtoken})
Debug Sampler
察看結果樹
fiddler抓到的請求:
業務相關請求。
樣式表、圖片、js相關請求。(通常沒用)
請求頭中的keep-alive表明客戶端支持長鏈接,可是實際是否是長鏈接要看服務器的返回頭中。
Token:令牌。從下往上找。
關聯:保存服務器返回的數據,再作一些特殊的處理,後續的請求會用。
jmeter支持Xpath 函數助手
URL編碼、解碼
將開發導出的Jar包拷到jemeter-lib-ext文件夾下,重啓jmeter
csv文件,Subline工具打開,另存爲時Save with Encoding選擇 UTF-8
按照時間運行,跑多長時間,不知道會跑多少次。 循環次數選擇永遠,勾選調度器,持續時間xxx
跑多少次,可是不知道會跑多久。 線程數10 循環次數1000 10個用戶登陸 跑10000萬次建立html
Jmeter官網插件庫。
性能測試中最關心的,響應時間、吞吐量(每秒鐘事務數TPS)。
好的性能要夠快、夠多,要響應時間、吞吐量、用戶同時考慮。
用jmeter測試websoket協議。
分佈式壓測:
Controller機器上,配置Jmeter.properties文件,remote_hosts配置壓力機:將ip填寫上,用逗號隔開,(壓力機的端口默認是1099,若是壓力機的機器上將把Jmeter.properties文件的port打開了,則在控制機上也須要將對應的端口號打開,而且:後是該壓力機對應端口號。)
在控制機上運行-遠程啓動/遠程啓動所有,則啓動了壓力機。(前提:壓力機上的jmeter都已經啓動,啓動方法,在壓力機上,命令窗口輸入jmeter-server.bat即啓動了壓力機。)
先配置好jmeter環境變量。
命令窗口,到腳本目錄下,jemeter -n -t Alfresco.jmx -l log /1.log -r -e -o reports/
非圖形化,分佈式壓測。
若是(if)控制器。
同一級別下:
配置元件會先執行,其次取樣器(參數化、關聯、斷言、前置處理器、後置處理器),最後監控。
取樣器的執行基於線程組,基於時間、基於次數。