測試工具的使用,參數(shù)化的策略
JMeter.LR. lr用錄制和代理錄制兩種方式膀曾,在提供報文的情況下手寫組件報文 ?JMeter.用代理錄制和fidder抓包錄制
LR分為三個模塊一個Virtual寫腳本,controller一個場景設(shè)置优幸,analysis一個結(jié)構(gòu)分析 ?
JM 添加線程組廊蜒,取樣器,聚合報告珠月,查看結(jié)果樹
一般分為順序,隨機(jī)楔敌,唯一啤挎,每個又分為順序,隨機(jī)卵凑,唯一
UNIque once
測試流程
首先需要做需求分析確定交易范圍重點是高頻的庆聘,易錯的風(fēng)險大的這些交易,關(guān)注交易指標(biāo):TPS?ART勺卢,關(guān)注交易鏈路是單系統(tǒng)的還是全鏈路的伙判,關(guān)注服務(wù)器的配置,測試環(huán)境的配置不能高于生產(chǎn)環(huán)境
編寫性能測試計劃
腳本開發(fā)黑忱,強(qiáng)化腳本宴抚,比如參數(shù)化勒魔,動態(tài)數(shù)據(jù)做關(guān)聯(lián),檢查點
服務(wù)器的監(jiān)控?nmon JProfiler 關(guān)注cpu,磁盤菇曲,內(nèi)存冠绢,網(wǎng)絡(luò)
壓測單基準(zhǔn)單交易負(fù)載 混合測試 多個業(yè)務(wù)場景一起跑,交易占比比對是100% 穩(wěn)定性測試跑的時間長
結(jié)果分析拐點常潮,服務(wù)器分析弟胀,通過壓測拐點找到單交易負(fù)載所需的負(fù)載
測試報告
測試工具?Jemter loadrunner
測過系統(tǒng)?項目中遇到過什么樣的問題,怎么解決的
協(xié)議喊式,http ?socket
腳本腳本怎么寫孵户,測試數(shù)據(jù)怎么查,轉(zhuǎn)賬垃帅,轉(zhuǎn)賬的賬號從數(shù)據(jù)庫中查出來的脫敏?
項目中遇到問題解決辦法延届,
新增的數(shù)據(jù)可以用腳本往里插入
服務(wù)器操作
Linux操作系統(tǒng)常用的操作命令,ll(查看當(dāng)前文件夾都有哪些文件)?cd(切換路徑)??mkdir chmod 777(創(chuàng)建文件)?rz (上傳文件)/.nmon -F 文件名.nmon ?-s 5 -c 60 (每5秒執(zhí)行一次執(zhí)行60次 生成指定文件)?top
AIX?常用的操作命令
[if !supportLists]1贸诚,?[endif]CPUsar命令可以使用sar命令來查看cpu的使用率
[if !supportLists]2,?[endif]ps aux | head -4查看前3位占用cpu的進(jìn)程
[if !supportLists]3厕吉,?[endif]lsps –a命令查看pagespces的使用率
[if !supportLists]4酱固,?[endif]svmon命令可以查看物理內(nèi)存的情況ibm150:[/]#svmon –G查看內(nèi)存全局使用狀況ibm150:[/]#svmon -Pt 3查看前三個占用內(nèi)存的進(jìn)
[if !supportLists]5,?[endif]iostat命令主要使用iostat命令查看磁盤I/O的負(fù)載ibm150:[/]#iostat 1 2
數(shù)據(jù)庫
sql在數(shù)據(jù)庫中的執(zhí)行計劃看看有沒有走索引或者是語句有問題
定位慢查詢头朱,主要手段查看sql 執(zhí)行計劃运悲。 ?aorcale的awr 報告數(shù)據(jù)庫 DBA 用戶登錄 SQL shell(或者直接用 Oracle 客戶端打開 sql 執(zhí)行窗,如 SQL Developer)项钮,執(zhí)行以下 sql: SQL> exec dbms_workload_repository.create_snapshot();數(shù)據(jù)庫 DBA 用戶登錄 SQL shell(或者直接用 Oracle 客戶端打開 sql 執(zhí)行窗班眯,如 SQL Developer),執(zhí)行以下 sql: SQL> exec dbms_workload_repository.create_snapshot();烁巫,是orcle 自己的工具有top事件署隘,根據(jù)cpu 內(nèi)存排序?Orcel awr 報告怎么生成怎么去看
DB2的快照這個手段
服務(wù)器的系統(tǒng)LINUX AIX 命令
服務(wù)器相關(guān)的命令行
步長和思考時間的區(qū)別步長是兩個事務(wù)之間的時間,可以用于調(diào)整業(yè)務(wù)配比
思考時間是為了模擬用戶的等待時間
Sesisson會話保持亚隙,存在服務(wù)器端的
Cockiss存在本地的
Token :鍵值
大部分問題出現(xiàn)在單交易負(fù)載磁餐、穩(wěn)定性上
TPS低,不達(dá)標(biāo)?:
[if !supportLists]1阿弃、[endif]首先確認(rèn)IO讀寫是否過高诊霹,查看日志級別為哪一級別,如果是info或debug先關(guān)閉或者修改為error級別渣淳,排除因日志問題導(dǎo)致的TPS不達(dá)標(biāo)脾还;
[if !supportLists]2、[endif]先看應(yīng)用和數(shù)據(jù)庫服務(wù)器資源是否有偏高的問題入愧,如果是數(shù)據(jù)庫服務(wù)器資源異常,(如:CPU過高或內(nèi)存過高)需進(jìn)一步確認(rèn)線程是否有等待現(xiàn)象和鎖表問題鄙漏。如果有慢sql問題如是oracle需要打印awr報告查看top10等事件進(jìn)一步確認(rèn)是什么原因嗤谚。
響應(yīng)時間過長:
1、查看應(yīng)用服務(wù)器日志泥张,確認(rèn)請求消耗時間具體是在應(yīng)用還是在數(shù)據(jù)庫呵恢,1(如果是應(yīng)用占用時間較長,需要使用監(jiān)控工具(如:jprofile)確認(rèn)是否因慢請求或方法占用較多媚创,2(如果是數(shù)據(jù)庫sql問題(如是oracle需要打印awr報告查看具體的慢sql進(jìn)行調(diào)整渗钉。如加索引的方法來解決。
內(nèi)存泄漏:一般出現(xiàn)在壓測穩(wěn)定性的時候才會體現(xiàn)钞钙。用nmon監(jiān)控工具鳄橘,將nmon分析好的文件,在mem表中做cache線芒炼,memfree線作對比瘫怜,先簡單排查一下 可以用Jvisualvm生成dump文件用JProfiler打開查看方法和類的占用情況
測試一個交易涉及ABC三個系統(tǒng),出現(xiàn)問題定位是哪個系統(tǒng)的問題
1 ?先測A單系統(tǒng)本刽,如果A 系統(tǒng)沒有問題
[if !supportLists]2.?[endif]在測試A到B在C系統(tǒng)做擋板鲸湃,如果A到B系統(tǒng)沒有問題
[if !supportLists]3.?[endif]再測試B到C 將B的報文發(fā)給C
遇到測試問題:
首先通過組內(nèi)討論的形式排除測試腳本,測試數(shù)據(jù)子寓,測試場景等自身原因暗挑,確認(rèn)無誤后將測試問題發(fā)給測試經(jīng)理和開發(fā)項目組。
我們自己可以通過查日志斜友,觀察服務(wù)器資源現(xiàn)象炸裆,百度等多種手段協(xié)助處理。并且敦促開發(fā)項目組提供合理的原因和解決辦法鲜屏。
寫測試報告需要關(guān)注那些點
1測試報告必須明確測試指標(biāo)烹看,測試指標(biāo)必須和前期的測試調(diào)研、測試方案一致
2測試數(shù)據(jù)必須精準(zhǔn)
3話術(shù)必須準(zhǔn)確洛史,避免出現(xiàn)含糊惯殊,避免出現(xiàn)大約大概等比較含糊的字眼
4問題現(xiàn)象原因解決辦法,必須詳細(xì)準(zhǔn)確虹菲,避免出現(xiàn)測試解決辦法無法再生產(chǎn)環(huán)境實現(xiàn)的現(xiàn)象
5測試環(huán)境必須低于生產(chǎn)環(huán)境的配置
6避免數(shù)顯數(shù)據(jù)錯誤靠胜,錯別字,標(biāo)點符號等低級錯誤