做了幾次簡單的性能測試猴蹂,沉淀了一點小經(jīng)驗,也踩過些小坑楣嘁。
1磅轻、性能測試實際的測試時間,通常比我預(yù)估的測試時間更久逐虚。
性能測試是一個獨立于功能測試的部分聋溜,我在做測試的時候,性能測試往往是安排在第一輪測試周期中的叭爱,但是撮躁,千萬不要用功能測試的周期去對待性能測試。它是一個完整的买雾、獨立的事件把曼,沒有二輪,沒有回歸測試漓穿!
新手測試嗤军,很容易遇到忽視或看輕造數(shù)據(jù)的時間、不明確測試的方法等問題晃危。
預(yù)估測試時間叙赚,可分為幾個步驟:
- 明確測試場景、測試數(shù)據(jù)量僚饭、測試要求
- 準(zhǔn)備測試環(huán)境
- 準(zhǔn)備測試數(shù)據(jù)的腳本
- 造數(shù)據(jù)所需時間
- 準(zhǔn)備測試腳本
- 測試腳本的執(zhí)行時間
- 獲取測試結(jié)果的方式
- 分析測試結(jié)果
- 發(fā)送測試報告
2震叮、造數(shù)據(jù)、調(diào)腳本鳍鸵,你真的熟練嗎苇瓣?
前期做單一場景的性能測試時,只需要調(diào)用一個http接口权纤,copy一下請求頭就可以執(zhí)行钓简,如此簡單乌妒,讓我以為所有的性能測試都可以這么簡單。太天真了好嗎外邓,調(diào)用鏈路長的你試試撤蚊,調(diào)腳本都調(diào)哭我了好嗎。TT
- 造數(shù)據(jù)
兩種造數(shù)據(jù)的方式:
1损话、調(diào)用接口
2侦啸、直接sql插入
兩種方式各有利弊吧,如果操作鏈路較長丧枪,調(diào)接口造數(shù)據(jù)經(jīng)常會遇到調(diào)用失敗的情況光涂,想造100條數(shù)據(jù),往往會因為各種原因拧烦,失敗成70忘闻、80條;用sql插入數(shù)據(jù)恋博,就要涉及到大數(shù)據(jù)量的組裝齐佳,整不好還得寫個腳本來幫忙,不過成功率會比調(diào)接口好很多债沮。
- 登錄
涉及到登錄炼吴,參數(shù)化http頭信息就很麻煩了。需要分析到請求頭里的cookies疫衩,token硅蹦,獲取session,來參數(shù)化http頭信息闷煤。
- 獲取上一個請求的返回值童芹,進(jìn)行參數(shù)化,傳入下一個請求
1曹傀、正則表達(dá)式提取器辐脖。能夠幫你在各種返回信息中過濾出有用的信息。
2皆愉、json提取器嗜价。提取json格式返回時常用,寫法簡單幕庐,和json的語法類似久锥。
- 定時器
設(shè)置一個固定定時器,可以防止請求響應(yīng)太慢异剥,拿不到返回結(jié)果瑟由。
- 響應(yīng)斷言
判斷請求是否成功,是否有想得到的數(shù)據(jù)冤寿。
- 計數(shù)器
可以用來設(shè)置自增的數(shù)據(jù)歹苦,例如要造數(shù)據(jù)為「測試-001」至「測試-099」青伤,即可使用如下設(shè)置,引用時殴瘦,使用「測試-${cnt-customer}」即可狠角。
3、測試執(zhí)行
- 流程控制
1蚪腋、 if 循環(huán)控制器
2丰歌、 while循環(huán)控制器 語法是JavaScript,如果不會寫屉凯,可以用函數(shù)助手中的__javascript幫你生成
- 當(dāng)腳本中有可無限成立的等式時立帖,可以用「調(diào)度器配置」執(zhí)行腳本,循環(huán)次數(shù)設(shè)置為1悠砚,設(shè)置持續(xù)時間來控制腳本的執(zhí)行時間晓勇。
- 當(dāng)需要腳本執(zhí)行多次時,設(shè)置循環(huán)次數(shù)為多次即可灌旧。這個比較常用宵蕉,不寫了。
4节榜、性能測試分析時的小經(jīng)驗
首先要明確做的是對比測試還是第一次優(yōu)化的性能測試。(這是我所接觸項目的類型别智,其他類型的測試先不敢說話宗苍。)
如果是對比測試,數(shù)據(jù)量可以不需要一次性定太大薄榛,適量讳窟,然后對比響應(yīng)時間即可。
有對比的測試是指啥樣的測試
A敞恋、相同環(huán)境下相同請求對比測試
B丽啡、相同測試環(huán)境下相似業(yè)務(wù)對比測試
- 明確所需要的測試環(huán)境
cpu的核數(shù)和內(nèi)存大小
- 數(shù)據(jù)準(zhǔn)備:直接從數(shù)據(jù)庫導(dǎo)出數(shù)據(jù),sublime text處理數(shù)據(jù)
- 服務(wù)器掛掉一次后硬猫,就對半減少測試數(shù)據(jù)
- 后端返回結(jié)果較快的情況下补箍,關(guān)注前臺的渲染時間
- http接口測試還是RPC接口測試
- 是否依賴其他環(huán)境
5、測試結(jié)果分析及優(yōu)化方向
grep后臺請求啸蜜,查看后臺服務(wù)的流轉(zhuǎn)過程坑雅,分析耗時較長的請求在哪里。
1衬横、建議代碼優(yōu)化
2裹粤、耗時較長的請求分批處理