一些理論:
負(fù)載和壓力的區(qū)別:
負(fù)載測(cè)試:在一定的工作負(fù)荷下,給系統(tǒng)造成的負(fù)荷及系統(tǒng)響應(yīng)的時(shí)間。
壓力測(cè)試:在一定的負(fù)荷條件下,長(zhǎng)時(shí)間連續(xù)運(yùn)行系統(tǒng)給系統(tǒng)性能造成的影響
TPS和QPS的區(qū)別:
tps可以理解為是每秒對(duì)事務(wù)的處理的能力 ?qps是每秒對(duì)服務(wù)器的查詢(xún)能力
性能測(cè)試:
性能測(cè)試包含web端和app端測(cè)試
App端的性能指標(biāo):
Cpu內(nèi)存 ?流量 ?電量 啟動(dòng)時(shí)間 ?幀率
cpu ?<80%內(nèi)存 ?<80%
電量的損耗:
流量的損耗:
web端的性能指標(biāo):
https://www.cnblogs.com/flyr/p/5509451.html??(web端的性能指標(biāo)詳情鏈接)
響應(yīng)時(shí)間(客戶(hù)端向服務(wù)端的請(qǐng)求時(shí)間,服務(wù)端對(duì)數(shù)據(jù)庫(kù)的請(qǐng)求時(shí)間,服務(wù)端將結(jié)果展現(xiàn)到頁(yè)面的時(shí)間)
響應(yīng)時(shí)間 2 5 8原則 ?
(258原則詳情鏈接)
吞吐量:指的是在一次性能測(cè)試過(guò)程中網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)量的總和.吞吐量/傳輸時(shí)間,就是吞吐率.
TPS:每秒處理事務(wù)能力
并發(fā)數(shù): 單用戶(hù)的多次操作
? ? ? ? ? ? ? ?多用戶(hù)的單次操作
點(diǎn)擊率: 每秒鐘用戶(hù)向WEB服務(wù)器提 交的HTTP請(qǐng)求數(shù).
資源使用率:cpu占用率? <80%? ? ? ? 內(nèi)存 ?<80%? ? ? ?磁盤(pán) io <40? ? ? ?網(wǎng)絡(luò)帶寬 <30%
app端的性能指標(biāo)

線程與進(jìn)程的區(qū)別:
一個(gè)程序至少有一個(gè)進(jìn)程,一個(gè)進(jìn)程至少有一個(gè)線程.?
線程的劃分尺度小于進(jìn)程,使得多線程程序的并發(fā)性高。
進(jìn)程在執(zhí)行過(guò)程中擁有獨(dú)立的內(nèi)存單元,而多個(gè)線程共享內(nèi)存,從而極大地提高了程序的運(yùn)行效率。
測(cè)試數(shù)據(jù)的來(lái)源:
A.復(fù)用開(kāi)發(fā)的原有數(shù)據(jù) b.復(fù)用線上的真實(shí)數(shù)據(jù)c.直接使用線上數(shù)據(jù) d.測(cè)試人員手動(dòng)添加
E:產(chǎn)品或者是運(yùn)營(yíng)提供數(shù)據(jù)
下載jmenet
官網(wǎng):https://jmeter.apache.org/?
jmenet版本要和jdk版本相匹配 不然會(huì)導(dǎo)致安裝失敗

下載完成后解壓文件到自定義文件夾
需要配置jmeter環(huán)境變量
1 新增新增JMETER_HOME系統(tǒng)變量

2 編輯CLASSPATH變量,加上%JMETER_HOME%\lib\ext\ApacheJMeter_core.jar;%JMETER_HOME%\lib\jorphan.jar;

完成以上步驟就可以雙擊Jmeter中bin目錄下面的jmeter.bat文件即可打開(kāi)Jmeter了

出現(xiàn)下面圖片代表安裝成功

jmeter使用
切換成中文

創(chuàng)建一個(gè)線程組


設(shè)置http請(qǐng)求
接口地址:http://apis.juhe.cn/simpleWeather/query
返回格式:json
請(qǐng)求方式:http get/post
請(qǐng)求示例:http://apis.juhe.cn/simpleWeather/query?city=%E8%8B%8F%E5%B7%9E&key=
接口備注:通過(guò)城市名稱(chēng)或城市ID查詢(xún)天氣預(yù)報(bào)情況\

添加http請(qǐng)求

添加結(jié)果樹(shù)

運(yùn)行

是否保存記錄

很明顯我請(qǐng)求失敗了

修改端口號(hào)為80 請(qǐng)求成功

類(lèi)似于篩查功能

添加聚合報(bào)告

可以看見(jiàn)執(zhí)行的詳細(xì)信息(在線程組修改線程數(shù)為300(壓力測(cè)試) 時(shí)間為2 循環(huán)次數(shù)為1)

Jmetere的斷言
添加斷言如果返回值與斷言相同成功否則失敗

Jmeter的參數(shù)化關(guān)聯(lián) ?都是用${變量名}
一個(gè)變量對(duì)應(yīng)一個(gè)變量值

添加一條信息


一個(gè)變量對(duì)應(yīng)多個(gè)變量值




使用csv文件方式




Jmeter的對(duì)數(shù)據(jù)庫(kù)鏈接(對(duì)數(shù)據(jù)庫(kù)進(jìn)行壓力測(cè)試)
添加mysql的jar包

在線程組添加




設(shè)置線程數(shù)然后添加結(jié)果數(shù)進(jìn)行測(cè)試

web端錄制
首先要有badboy 如果沒(méi)有可以自行去官網(wǎng)悄悄下載一個(gè)
有了badboy之后打開(kāi)它點(diǎn)擊上方工具欄的小紅點(diǎn)進(jìn)行錄制

在badboy中輸入要測(cè)試的web項(xiàng)目的網(wǎng)址(例如 百度 w w w.baidu.com)

接下來(lái)就開(kāi)始點(diǎn)擊需要測(cè)試的地方 任性一點(diǎn)喜歡哪里點(diǎn)哪里也可以
點(diǎn)夠了我們就停止錄制


生成.jmx文件

在jmeter中導(dǎo)入剛剛生成的.jmx文件
可以查看接口請(qǐng)求的數(shù)據(jù),也可以對(duì)其進(jìn)行壓力,性能測(cè)試(不知道怎么測(cè)試可以看一看之前的內(nèi)容)
添加結(jié)果樹(shù),聚合報(bào)告(不知道怎么添加可以看一看之前的內(nèi)容)
app端錄制
模擬器長(zhǎng)按wifi點(diǎn)擊修改網(wǎng)絡(luò)查看(設(shè)置)端口號(hào)和ip


點(diǎn)擊啟動(dòng)后開(kāi)始錄制
對(duì)移動(dòng)端設(shè)備進(jìn)行操作
查看結(jié)果
可以查看接口請(qǐng)求的數(shù)據(jù),也可以對(duì)其進(jìn)行壓力,性能測(cè)試(不知道怎么測(cè)試可以看一看之前的內(nèi)容)
添加結(jié)果樹(shù),聚合報(bào)告(不知道怎么添加可以看一看之前的內(nèi)容)
正則提取器
添加http請(qǐng)求
然后我們要?jiǎng)?chuàng)建一個(gè)正則表達(dá)式


一些常用的正則表達(dá)
$-1$:表示取所有值
$0$:表示隨機(jī)取值
$1$:表示取第1個(gè)
$2$:表示取第二個(gè)
$n$:表示取第n個(gè)
():括起來(lái)的部分就是要提取的
. :匹配任何字符
+ :一次或者多次
* :所有字符串
? :在找到第一個(gè)匹配項(xiàng)后停止
模板:表示使用提取到的第幾個(gè)值
匹配數(shù)字(0表示隨機(jī)): 0表示隨機(jī),1代表全部取值
缺省值:如果正則表達(dá)式?jīng)]有找到值,則使用此缺省值

然后添加結(jié)果樹(shù),點(diǎn)擊運(yùn)行就可以查看詳細(xì)的數(shù)據(jù)
可以查看接口請(qǐng)求的數(shù)據(jù),也可以對(duì)其進(jìn)行壓力,性能測(cè)試(不知道怎么測(cè)試可以看一看之前的內(nèi)容)
添加結(jié)果樹(shù),聚合報(bào)告(不知道怎么添加可以看一看之前的內(nèi)容)
對(duì)應(yīng)的正則規(guī)則:

贈(zèng)送一道題
Jmeter的正則提取器面試題:
在一個(gè)線程組中,B請(qǐng)求需要使用A請(qǐng)求返回的數(shù)據(jù),也就是常說(shuō)的關(guān)聯(lián),將上一個(gè)請(qǐng)求的響應(yīng)結(jié)果作為下一個(gè)請(qǐng)求的參數(shù),則需要對(duì)A請(qǐng)求的響應(yīng)報(bào)文使用后置處理器,其中最方便最常用的就是正則表達(dá)式提取器了。