負載和壓力的區別:
負載測試:在一定的工作負荷下,給系統造成du的負zhi荷及系統響應的時間。
壓力測試:在一定的負荷條件下,長時間連續運行系統給系統性能造成的影響。
TPS和QPS的區別:
tps可以理解為是每秒對事務的處理的能力 ?qps是每秒對服務器的查詢能力
性能測試web端和app端測試
web端的性能指標:
響應時間(客戶端向服務端的請求時間,服務端對數據庫的請求時間,服務端將結果展現到頁面的時間)
響應時間2 5 8原則 ??
吞吐量:指的是在一次性能測試過程中網絡上傳輸的數據量的總和.吞吐量/傳輸時間,就是吞吐率.
TPS:每秒處理事務能力
并發數: 單用戶的多次操作
多用戶的單次操作
點擊率:每秒鐘用戶向WEB服務器提 交的HTTP請求數.
資源使用率:cpu ?<80%內存 ?<80% ?io <40 ???網絡 <30%
App端的性能指標:
Cpu內存 ?流量 ?電量 啟動時間 ?幀率
cpu ?<80%內存 ?<80%
電量的損耗:
流量的損耗:
線程和進程區別:
接口測試:postman jmeter
Jmeter的接口測試
1測試計劃中添加線程租?
2在線程租中添加http請求?
3寫入Http請求數據綠色三角運行
服務器ip:apis.juhe.cn/lottery/history
key:0a55e25ee6ece7b526299957636e957c
lottery_id:ssq
4在線程租中進行修改并發數量(修改線程數量修改循環次數)
Jmetere的斷言:
斷言用來判斷接口的返回值是否匹配
在線程租中進行添加斷言--響應斷言并將json放入到響應結果中在察看結果樹中來
Jmeter的對數據庫鏈接(對數據庫進行壓力測試):
測試數據的來源:
a.復用開發的原有數據?b.復用線上的真實數據c.直接使用線上數據?
d.測試人員手動添加 e.產品或者是運營提供數據
Jmeter需要使用JDBC功能時,把解壓好的jar包放在(jmeter的lib路徑)即可。
1.打開jmeter,先創建線程組。
2.測試計劃->添加->配置元件->JDBC Connection Configuration
3.然后第一個紅框隨便寫,第二個紅框配置JDBC數據庫連接
Database URL:? jdbc:mysql://替換ip地址:3306/數據庫名
配置完成就可以執行數據庫了。
4.線程組下面添加JDBC sample,在紅框里輸入第三步里的輸入的值
5.查看結果樹,顯示這樣就已經連接數據庫,可以操作數據庫數據了
****注意:query?type類型不同則寫sql語句不同****
Jemter的二種錄制方法:
一,Badboy(PC端)
Badboy是一款不錯web自動化測試工具,利用它來錄制腳本,并且錄制的腳本可以直接保存為JMeter文件來使用。
通過Badboy來錄制腳本
Badboy下載完成打開頁面如下:
1.打開badboy ,點擊紅色按鈕,在地址欄輸入被測項目地址。
錄制完后,點擊旁邊的黑色按鈕結束錄制。
2.File下選擇Export to Jmeter 保存.jmx類型文件
3.打開Jmter,打開“文件”->‘打開’選擇剛保存的.jmx類型文件。
二,使用Jmeter自身的代理錄制腳本(移動端)
1.打開jemter,創建一個線程
2.添加代理服務器,點擊 “工作臺”,然后右鍵,根據如下圖步驟,添加一個代理服務器。
3.cmd輸入ipconfig獲取本機ip
?設置端口、ip以及錄制地址
4.模擬器修改網絡選項
瀏覽器下載安全證書訪問http://charlesproxy.com/getssl?
5.點擊綠色的啟動按鈕
6.業務操作完畢,停止jemter上的“HTTP代理服務器”
Jemter提取器:
一、正則表達式提取器
步驟:右鍵“HTTP請求”->添加->后置處理器->正則表達式提取
下面是正則表達式各參數值的含義:
1.引用名稱:在HTTP等請求中,引用此數據,需要用到的名稱
2.正則表達式:用于將需要的數據提取出來
3.模板:$ 1$ 這是固定格式
4.匹配數值:0代表隨機取值,1代表第一值,n代表第n個值
5.缺省值:如果正則表達式沒有搜到值,則使用此缺省值
正則正則表達式的格式:字符串形式"token":"(.+?)" 數字形式 “taken”:[(0-9)+]
( ) 標記一個子表達式的開始和結束位置。子表達式可以獲取供以后使用。要匹配這些字符,請使用 ( 和 )。
匹配前面的子表達式一次或多次。要匹配 + 字符,請使用 +。
. 匹配除換行符 \n 之外的任何單字符。要匹配 . ,請使用 . 。
? 匹配前面的子表達式零次或一次,或指明一個非貪婪限定符。要匹配 ? 字符,請使用?
二、JSON提取器
步驟:右鍵“HTTP請求”->添加->后置處理器->JSON提取器
下面是JSON提取器各參數值的含義:
1.引用名稱:在HTTP等請求中,引用此數據,需要用到的名稱
2.提取格式:$data[0].name
3.匹配數值:0代表隨機取值,1代表第一值,n代表第n個值
4.缺省值:如果正則表達式沒有搜到值,則使用此缺省值
json提取格式json講解:
1.json串 []表示對象組成的數組,{}表示對象。
2.對象里包含多個 “屬性”:屬性值。屬性值可以是值,或數組,或對象。
3.JSON Extractor使用json path表達式匹配,可以一次取多個變量值。$表示響應的根對象。取子對象或對象的屬性用. 取數組里的對象用[],數組索引從0開始。
Jemter定時器:
?一,固定定時器
如果你需要讓每個線程在請求之前按相同的指定時間停頓,那么可以使用這個定時器;需要注意的是,固定定時器的延時不會計入單個sampler的響應時間,但會計入事務控制器的時間。
二,高斯隨機定時器
如需要每個線程在請求前按隨機時間停頓,那么使用這個定時器,上圖表示暫停時間會分布在100到400之間,計算公式參考:Math.abs((this.random.nextGaussian()?*?300)?+?100)