場景:發(fā)起訂單蔬充,再取消訂單蝶俱。測試大批量用戶同時(shí)下單到服務(wù)器以及取消訂單時(shí)對數(shù)據(jù)庫進(jìn)行操作,服務(wù)器性能問題饥漫。
PS:下單之后會(huì)返回訂單號(hào)榨呆,訂單號(hào)作為取消訂單時(shí)的參數(shù)傳入,涉及到簡單的jmeter中的正則表達(dá)式取參數(shù)庸队,以及參數(shù)獲取积蜻,如果只想知道怎么獲取,可直接跳轉(zhuǎn)到第8步彻消。
后臺(tái)服務(wù)和數(shù)據(jù)庫都在一臺(tái)服務(wù)器上竿拆,下單時(shí)會(huì)有數(shù)據(jù)庫操作,向數(shù)據(jù)庫中插入訂單數(shù)據(jù)宾尚。取消訂單會(huì)更新數(shù)據(jù)庫數(shù)據(jù)
1.增加線程組
2.設(shè)置jmeter為代理丙笋,錄取從app上下發(fā)的請求消息
3.添加http代理之后,配置端口和選擇為線程組錄制
端口設(shè)置可以任意煌贴,這個(gè)一會(huì)從手機(jī)上取設(shè)置代理時(shí)不见,要寫入這個(gè)相同的端口號(hào),保持一致就行崔步。點(diǎn)擊開始,手機(jī)上設(shè)置完代理之后就會(huì)錄取手機(jī)上的請求消息了缎谷,錄完之后停止井濒,要不然會(huì)一直攔截到請求。
4.手機(jī)上設(shè)置代理(手機(jī)和電腦連接同一個(gè)wifi)
地址寫電腦IP地址列林,端口寫上一步設(shè)置的端口
5.手機(jī)上去操作瑞你,一直點(diǎn)擊到要測試性能的步驟(比如要測試下單購買時(shí),下單時(shí)大批量性能希痴,那就在手機(jī)上點(diǎn)擊一直到購買)
6.點(diǎn)開jmeter線程組前面的三角者甲,打開子菜單,發(fā)現(xiàn)已經(jīng)將要錄制的請求錄好了砌创。
因?yàn)槭謾C(jī)上有多種軟件虏缸,有可能也將其他軟件的請求也抓取到了,刪除不用的請求消息嫩实,只保留要測試的部分刽辙。
7.增加結(jié)果樹,能看到發(fā)送請求響應(yīng)信息
監(jiān)聽這有很多可以增加甲献,第二個(gè)聚合報(bào)告可以查看到發(fā)送許多請求時(shí)的失敗率宰缤,多線程測試時(shí)也需要添加上
8.先運(yùn)行一次,查看各個(gè)請求的響應(yīng)是否正常,也可以查看到各個(gè)請求的請求參數(shù)慨灭。由于我這個(gè)訂單號(hào)是下單請求返回的參數(shù)朦乏,取消訂單時(shí)就需要用到,所以要獲取這個(gè)參數(shù)氧骤。直接錄制的參數(shù)是個(gè)確定的值呻疹,肯定不行
9.下單請求(要獲取響應(yīng)中參數(shù)作為請求參數(shù)的那個(gè)請求)上添加正則提取器
10.編輯正則提取參數(shù)
變量名:自己去取變量名,后面調(diào)用時(shí)用到语淘。
真正則表達(dá)式的書寫诲宇,可以根據(jù)需要網(wǎng)上搜。我要取得是orderNo值惶翻,所以先定位到orderNo姑蓝,小括號(hào)()表示提取,也就是說對于你想要提取的內(nèi)容要用它括起來吕粗。取得值就是括號(hào)中括起來得值:"orderNo":"(.*?)"纺荧。
模板: 模板是使用提取到的第幾個(gè)值。因?yàn)榭赡苡卸鄠€(gè)值匹配颅筋,所以要使用模板宙暇。從1開始匹配,依次類推议泵。這里只有一個(gè)占贫,所以使用即可。
匹配數(shù)字表示如何取值(網(wǎng)上查資料先口,有些-1代表全部取值型奥,有些是1代表全部取值)。這個(gè)其實(shí)是跟后面調(diào)用時(shí)參數(shù)怎么寫有關(guān)碉京。比如這塊填寫了1厢汹,那后面調(diào)用這個(gè)參數(shù)時(shí)就要寫成{orderNO_1}凡蜻,對這塊還是比較模糊搭综,哪位要是明白這塊,也歡迎給解惑啊划栓,謝謝设凹。
11.獲取到的參數(shù)作為請求,直接調(diào)用
這塊說一下茅姜,因?yàn)槲业谝淮螌懙臅r(shí)候闪朱,直接就只寫了參數(shù)調(diào)用${orderNO}月匣,然后調(diào)用查看響應(yīng),發(fā)現(xiàn)報(bào)錯(cuò)了
查看請求消息奋姿,發(fā)現(xiàn)訂單號(hào)是個(gè)字符串類型的锄开,直接寫成${orderNO},會(huì)只取值称诗,并不會(huì)給其加上雙引號(hào)萍悴,所以再調(diào)用時(shí)要加上雙引號(hào)。
所有的都設(shè)置好之后寓免,再調(diào)用一次癣诱,看下每個(gè)請求的響應(yīng)是不是正常,正常時(shí)袜香,就可以設(shè)置線程數(shù)去跑性能了撕予。
別忘了添加聚合報(bào)告,能查看到出錯(cuò)率蜈首。