Loadrunner学习笔记(四)
結果簡單分析
1.結果中平均值 和90 percent,標準差比較重要
2.Lr結果報告中,顯示了事務的響應時間的最小值,平均值,最大值,其中平均值比較重要
標準差越小(趨近于0),表示事務的響應時間越接近,代表系統越穩定。
3.90 percent:表示執行該事務的90%的用戶都可以在該時間內完成操作
例:100用戶共同執行某事務,其中1個用戶執行時間為1000秒,99個用戶執行時間為0.01秒,則90 percent 和平均值那個真實-----90 percent值比較真實,—所以,讀報告時,不應只看平均值,也要關注90 percent值。
4.Analysis 不能直接打開腳本生成器中的結果,腳本生成器(VUG)中的腳本只能調試后點擊"run"來從replay log 中查看結果
5.當腳本調試通過后—加到控制臺—打開analysis
檢查點
1.一個腳本中一般只加入一個集合點,比如一個腳本錄制的是一個流程(包含多個操作),則在每個事務前都添加一個集合點。該做法從語法角度沒有錯誤。但是如果腳本運行結果有問題,不好分析。
2.一個腳本中在關心的操作附近記得添加事務,所以一個腳本至少一個事務,但是一般情況下登陸也會添加為事務
3.關心的操作就是測試計劃中的測試點,如查詢稿件,購買機票,
4.注意:web_find函數要求
1)寫在相應請求之后
2)開啟run_time settings中開關
3)檢查的內容在AUT界面拷貝即可
5.結果定位log中的函數信息,選中要查看的函數信息,右鍵 go to step in replay log
也可以選中想要查看的函數,屏幕右下角就會顯示該函數的行數直接到log中去找就可以了
6.lr_outout_message函數的結果只顯示在回放日志中,不會顯示在結果報告中
7.web_find函數的左右邊界
1)rightof 表示左邊界
2)leftof 表示右邊界
例:web_find(“web_find”,3
“RightOf=Thank”,
“LeftOf=For booking”,
“What=you”,
LAST);
web_find函數參數值兩邊不要有空格
8.web_image_check函數兩個參數,使用時取一個即可,另外一個參數可以為空值
1)alt參數:當光標懸浮在網頁圖片上時顯示的名稱(給用戶看的)
2)src參數:該圖片在源代碼中的路徑及名稱(給程序員看的)
9.web_imga_check函數特性與web_find相同
1)寫在相應請求之后
2)開啟run_time_settings中開關
3)參數內容在代碼源中提取
10.一個腳本中一般只加入一個集合點,比如一個腳本錄制的是一個流程(包含多個操作)則在每個事務前添加一個集合點,該做法從語法角度沒有錯誤,但是如果腳本運行結果有問題,不好分析
11.注意,web_image_check函數不經常使用,使用時要留意檢查的圖片是不是屬于服務器本次發送的數據包中內容,如果不是本次應答內容,則檢測不到
12.如果查找每次應答內容,可以通過results中去查找
3.小練習
什么是并發點,并發點的三個策略是什么
并發測試需要做并發點也叫做集合點,
策略:
1 Pelease when x% of all Vuser arrive at the rendezvous:當所有的用戶或者多少用戶全部到達進行釋放
2. Pelease when x% of all running Vusres arrive at the rendezvous:如果所有集合點等待的用戶數達到所有正在運行用戶的X%時,系統就釋放用戶,繼續向下執行
3. Pelease when x Vusers arrive at the rendezvous:設置多少個用戶進行釋放,如設置4,當用戶走到集合點,湊夠4個然后一起進行運行
如果達到50%的用戶并發,則如何設置?
1)將第一項輸入50 ,設置為50%
2)第二項不可以,因為這個是指運行中的用戶的50%
3)將第三項輸入一半的用戶
故一般都設置為第一個,第二個不可以,第三個比較麻煩,還得去算
檢查點的三個函數?簡要介紹你所知道的函數
1)web_reg_find
2)web_find
3)web_image_check
補充:并發測試是考察系統的瞬間壓力承受能力,是比較嚴格的測試,所以不需要等待時間(思考時間、睡眠時間、think time)。-----忽略think time
web_reg_find函數(lr常用,必用)
1.在lr中,帶有reg字樣的函數,稱為注冊性函數,該類的函數的特點,就是要將函數寫在相應請求之前
2.性能測試中,所有的數據包(客戶端和服務器之間的對話)分為兩類: 請求包和應答包
無論是請求包還是應答包,都分為兩部分,header和body部分
1)header中是一些參數設置
2)body中才是真正要傳遞的信息
3.lr函數(web_或者lr開頭的函數)中出現的變量,成為lr變量,該類變量不需要再腳本初始位置定義,但是c語言的變量一定要在初始位置定義。
4.web_reg_find(“Text=ABC”,
“SaveCount=abc_count”,LAST);
web_url(“Step”,“URL=…”,LAST);
if (strcmp(lr_eval_string("{abc_count}"),“0”) ) //比較abc里值,是否等于0,如果等0, ==0) //則返回0,就顯示not found
lr_output_message(“not found”);
else
lr_output_message("%s times", //%s表示格式限定符
lr_eval_string("{abc_count}")); //不等于0就輸入次數
解釋:
1)strcmp函數的作用是比較兩個字符串是否相等,如果兩個字符串相等,則函數的返回值為0,即strcmp(a,b)==0
2) lr_eval_string函數的作用:
a)為c語言的函數和lr的變量起到橋梁的作用
b)可以取出lr變量abc_count的實際值,如3次
3)為何3層括號
a)lr_eval_string函數后面必須接()
b)()里面是字符串,所以用""
c)"“里面不是普通字符串,而是lr變量,lr要求,如果取lr變量的值,則必須要用{}。所以三層括號
4)lr_output_message(”%s times",
lr_eval_string("{abc_count}"));
a)%s表示格式限定符,表示輸出時該處輸出字符串;如果是%d,則該處輸出整型
b)輸出的內容,將有逗號后的內容替代
c)如果引號里有多個限定符,則依次按照逗號后的內容來替代,如lr_output_message(“用戶名%S, 密碼是%s”,a,b),則輸出時, 由a替換到第一個%s,b的值替換到第二個%s。自己在腳本中添加的檢查并驗證通過
輸出語句(lr_output_message)寫在相應請求之后即可,不一定緊貼在該請求之后,只要值形成,隨時可以輸出
5.web_find和web_reg_find的區別
1)錄制模式區別
—web_find只能用在基于HTML模式錄制的腳本,而web_reg_find沒有此限制
2)位置區別
—web_reg_find是先注冊(register)后查找;放在請求語句前面
—web_find是查找前面的請求結果,使用時放在請求語句后面
3)設置區別
—run -time設置中的"enable image and text check"對web_find有效,而對web_reg_find無效
4)查找方式區別
—web_reg_find參數中savecount紀錄查找匹配的次數(savecount一般腳本調試的時候用)
—web_find的機制是一旦查找匹配成功就立即返回,并不繼續查找和紀錄匹配次數
5)查找范圍區別
—web_find是在返回的頁面中進行內容查找
—web_reg_find是在緩存中進行查找
6)效率區別
—web_reg_find執行效率高,也是lr中經常用到的
基準測試(單用戶測試)
1.如果腳本錄制過程頁面報錯,則放棄錄制,重新錄制,要保質錄制過程絕對正確
2.錄制完成的腳本一定要回放,如果正確,在進行下一步增強腳本,如果不正確要查找原因
3.基準測試步驟:
1)腳本調試,運行通過
2)放入控制臺
3)控制臺參數設置:
a)用戶個數為1
b)虛擬用戶部署不需要設置(global scheddule)
c)在run_time settings 中設置—run logic 設置5次(10次頁可以)
d)pacing值:隨機2-3秒(pacing值即場景的兩次迭代之間,加入一個時間間隔(步進))
4)pacing值:循環之間的時間間隔,一般情況下2-3秒
5)think time值,步驟(操作)之間的時間間隔
6)因為在線測試過程中,如果用戶循環提交請求,但是每次循環之間沒有時間間隔,則過于嚴格,不符合實際的生產環境
7)如果將pacing值,或者think time 值調長,則對AUT的壓力減小
總結
以上是生活随笔為你收集整理的Loadrunner学习笔记(四)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这就是苹果实力!iPhone至少有9个独
- 下一篇: 电动车还能更便宜吗?电池级碳酸锂再跌:已