【loadrunner】性能測試之並發測試一般步驟


1、錄制腳本,添加事務,對關注的請求添加事務即可;添加檢查點

2、回放腳本,如果回放不成功,需要做關聯,我驗證的腳本,並沒有session的關聯,但是由於添加的檢查點,服務器返回的body是亂碼,所以一直回放不成功,這種情況,要么解決亂碼的問題,要么用lr轉碼函數,我使用的后者。用這個函數的時候,還是用到了關聯函數,將我要檢查的文字給摘取出來。
web_reg_save_param_ex(
“ParamName=tableData”,
“LB=ake002”:"",
“RB=”,“aaz319”:",
SEARCH_FILTERS,
“Scope=BODY”,
LAST);
注意,該關聯函數是注冊函數,需要放在對應請求的前面
lr_convert_string_encoding(lr_eval_string("{tableData}"),LR_ENC_UTF8,LR_ENC_SYSTEM_LOCALE,“RTString” );
i = strstr(lr_eval_string("{RTString}"),lr_eval_string(“檢查點的文本內容”));
if(i != NULL){
lr_end_transaction(“login”, LR_PASS);
}else{
lr_end_transaction(“login”, LR_FAIL);
lr_error_message("%s",lr_eval_string("{RTString}"));
}

對於這塊不熟悉的,可以參考以下博客
https://blog.csdn.net/out_of_memory_/article/details/87618075
如果測試的是webservce接口性能,不需要關聯函數,只要后面的代碼即可,其中{tableDate}這個參數值就需要

 

 在這里我順便說一句,web_service_call中

 

 )
3、回放成功后,添加集合點,參數化,假設我們要測試200用戶並發,則需要准備200條數據
參數取值策略如下

 

 取值如下:
在這里插入圖片描述

4、將腳本放入控制台
這里我要說明一下license(只適用於lr11),
golba-100: AEAMAUIK-YAFEKEKJJKEEA-BCJGI
web-10000: AEABEXFR-YTIEKEKJJMFKEKEKWBRAUNQJU-KBYGB
golba-1000:AEACFSJI-YASEKJJKEAHJD-BCLBR
65000:AEACFSJI-YJKJKJJKEJIJD-BCLBR

有如上license,其實只要添加65000那個超級license即可,既可以用來測試webservice,又可以測試web應用。

5、設置集合點策略

 

 

 

 


6、啟動用戶設置200

7、運行策略是,duration=run until completion

 

 


8、run-time-setting

 

 

並發的時候,嚴格測試,需要清理緩存,清理了緩存之后,很多資源就會重新下載,有的資源下載可能是框架里面的,比如說樣式什么東西,可能開發都不知道的。一般來說,靜態資源是來自於靜態資文件服務器,如果靜態占用的時間長,就需要想辦法壓縮。

測試的時候一定要跟項目經理確認一下,是否每次迭代是否清理緩存,是否下載http資源,這兩項很影響事務的響應時間。
lr測試事務響應時間:
在這里插入圖片描述
9、監控windows資源(應用服務器)
在這里插入圖片描述
在這里插入圖片描述

監控的指標可以如下:
在這里插入圖片描述

並發測試的時候,資源指標不要看平均,要看並發的時候,相關cpu等的情況是怎么樣的,才能說明問題。

10、監控數據庫服務器
監控這個是有工具的,比如說nmon,但是我測試的時候用的是windows本身的
在這里插入圖片描述

windows資源監控,如果沒有工具進行監控,可以使用windows本身的監控工具
https://jingyan.baidu.com/article/a3761b2bdfa24b1576f9aa8e.html

11、linux服務器的監控
以上是如何監控windows服務器資源,實際項目中,還有linux服務器的監控,那該怎么弄呢?
我們可以使用nmon
(1)將nmon放在linux服務器上
自己可以在root創建一個目錄,mkdir,然后將以下文件(nmon_linux_x86_64)放進去
鏈接:https://pan.baidu.com/s/1TF3L8aqiQMo0lIYs8vr8Ag
提取碼:er0b
(2)將這個文件改名
可以不做這一步,但是修改了之后,好操作一點,以下操作是將這個文件改名為nmon
mv nmon_linux_x86_64 nmon
(3)給nmon這個文件授權
chmod 777 nmon
(4)啟動nmon
./nmon(注意前面有個點)
(5)使用nmon采集數據
./nmon -s3 -c20 -f -m ./report
(6)將nmon采集的數據形成的文件拷貝出來
從linux系統中將文件弄出來,可以參考以下鏈接,有點麻煩,大家自己看用什么順手
https://jingyan.baidu.com/album/8065f87faf917d23312498c3.html?picindex=5
(7)使用ibm提供的analyser形成報表
工具獲得從以下鏈接:
鏈接:https://pan.baidu.com/s/1kRx8LsIy-9S30rZ7zSlc9A
提取碼:szqk
其中有個這么一個文件

在這里插入圖片描述
在這里插入圖片描述

這里要注意的是,analyser正常使用的話需要啟動宏,但是wps不支持,需要安裝以下軟件,親測有效,其他的不能使用宏的,大家可以自己上網去查詢
鏈接:https://pan.baidu.com/s/190AWkT6ok0qLO66HdKopEA
提取碼:gcmf
安裝后,重新打開wps,然后點擊啟動宏就可以正常使用了。

弄這個我也是根據別人的博客來的。
https://blog.csdn.net/qinqigang/article/details/78070319

如果只是大概看看linux服務器的cpu和mem的變化,其實可以使用linux的top命令來看,很簡單的。
具體看哪一個值見以下文檔:
https://www.cnblogs.com/xianhan/p/9431912.html

12、時刻關注數據庫的變化
關注事務掛起(是否有鎖表的情況導致響應時間邊長)
(1)查看鎖表的命令
show open tables where in_use>0;
(2)查看當前進程
show processlist;
(3)殺掉進程
kill process_id;

查看當前連接數:
我測試一個接口的性能,發現,大規模的報錯,后來排查問題是因為數據庫的設置原因,最大連接數只設置了100
show variables like ‘%max_connections%’;
show status like ‘Threads%’;

12、打開sql慢查詢服務
打開之后,運行之后,自己就可以定位一些比較簡單的問題
見鏈接:
https://www.cnblogs.com/gxj521test/p/10964795.html

https://www.cnblogs.com/qmfsun/p/4844472.html
設置后查看如果不生效,見如下鏈接:
https://blog.csdn.net/fangkang7/article/details/83181171

13、注意事項
(1)性能測試的時候,需要讓數據庫里面背景數據,不然測試不准確

(2)不同的項目,注意事項還有點不同,問一下開發即可。

(3)小編在測試性能的時候,遇到過這種情況,這也是以前沒有怎么注意的。
一開始,小編沒有意識的去用無線測試性能,發現網絡時間占了大半,服務器處理時間很少。

后來小編就換成有線測試(一般局域網都會忽略掉網絡時間的),發現網絡時間改善了很多,但是響應時間並沒有減少,因為服務器時間反而增大了。

項目經理在服務器上自己搭建了一個pinpoint監控平台,可以看到相關鏈接時間,發現有這樣的問題,connection減少后,sql語句的查詢時間增加,connection增加后,sql語句的查詢時間減少(項目的服務器是tomcat,通過增減線程,可以改變connection的時間https://blog.csdn.net/u012661248/article/details/80748814)。

初步判定是這樣一個原因,connection短了之后,並發這么多線程同時就要查詢這個sql,系統插敘不過來導致。如果網絡時間不好,sql查詢就完全有時間一個一個處理。但是怎么去解決這樣的問題,目前暫時不清楚。

小編就覺得,有時候測試的時候,可以嘗試着有線、無線都測試一下,看情況有什么不同。

(4)
————————————————
版權聲明:本文為CSDN博主「qq_42532915」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/qq_42532915/article/details/93600932


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM