日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LoadRunner学习第四天——检查点学习(转载)

發(fā)布時間:2025/3/20 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 LoadRunner学习第四天——检查点学习(转载) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

LR中檢查點有兩種:圖片和文字。

常用檢查點函數(shù)如下:

1)web_find()函數(shù)用于從 HTML 頁中搜索指定的文本字符串;

2)web_reg_find()函數(shù)注冊一個請求,以在下一個操作函數(shù)(如 web_url)檢索到的HTML網(wǎng)頁上搜索指定的文本字符串;

3)web_image_check()函數(shù)用于從HTML頁面中查找指定的圖片;

4)web_global_verfication()屬于注冊函數(shù),注冊一個在web頁面中搜索文本字符串的請求,與web_reg_find只在下一個Action函數(shù)中執(zhí)行搜索不同的是它在之后所有的Action類函數(shù)中執(zhí)行搜索指定的文本字符串;

下面分別介紹以上函數(shù)的用法:

1、web_find()函數(shù)參數(shù)舉例:

web_find("web_find","RighOf=a","LeftOf=b","What=name",LAST);

參數(shù)解釋:"web_find"定義該查找函數(shù)的名稱;“LeftOf”和“RighOf=”用來定義查找字符的左右邊界;“What=”定義查找內(nèi)容;

例如上述參數(shù)舉例中的意思就是在頁面中查找左邊界為b,右邊界為a,內(nèi)容為name的信息;

使用該函數(shù)注意事項:該函數(shù)是在查找頁面中的內(nèi)容,所以要放在要查找的內(nèi)容的后面;該函數(shù)只能在基于HTML模式錄制的腳本中進(jìn)行查找

注意事項:使用該函數(shù)時,要在Vuser->Run-Tme Settings中更改下設(shè)置

勾選Enable Image and text check

系統(tǒng)默認(rèn)是不勾選該選項的。

2、web_reg_find()函數(shù)參數(shù)舉例:

web_reg_find("Search=Body","SaveCount=ddd","Test=aaa",LAST);

參數(shù)解釋: Search用來定義查找范圍,SaveCount定義查找計數(shù)變量名稱,該參數(shù)可以記錄在緩存中查找內(nèi)容出現(xiàn)的次數(shù),可以使用該值,來判斷要查找的內(nèi)容是否被找到;

例如上述參數(shù)舉例中的意思就是Body中查找內(nèi)容為aaa的信息,并將出現(xiàn)次數(shù)記錄在變量ddd中;

【代碼一:web_reg_find("Text=Payment Details",LAST);

代碼思路:1.“Payment Details” 為你要檢查的文本;

2. 腳本執(zhí)行到此處,若在頁面上找到了這幾個字符串,那腳本繼續(xù)執(zhí)行下去;若沒有找到,腳本將在此報錯并且結(jié)束。】

【代碼二:web_reg_find("Text=Payment Details", "SaveCount=para_count", LAST); //check 的函數(shù)

web_submit_form("reservations.pl_2", //要check的頁面的錄制時的代碼

"Snapshot=t22.inf",

ITEMDATA,

"Name=outboundFlight", "Value=003;0;06/23/2007", ENDITEM,

"Name=reserveFlights.x", "Value=61", ENDITEM,

"Name=reserveFlights.y", "Value=2", ENDITEM,

LAST);

if (atoi(lr_eval_string("{para_count}"))>0) //驗證是否找到了頁面上的要檢查的字符串

lr_output_message("we find the string!");

else

lr_output_message("sorry,don't find the string!");

代碼思路:1.“Payment Details” 為你要檢查的文本;

2. 腳本執(zhí)行到此處,不管頁面上是否存在你要檢查的字符串,腳本都不會報錯,而是執(zhí)行下去。

3. 此段代碼將找到的你要檢查的字符串的個數(shù),存為一個參數(shù)。 然后在頁面代碼的后面,通過檢查這個參數(shù)的值是否大于0,來判斷是否找到了你所要檢查的字符串。】

【代碼三:

A. web_reg_find("Text=Payment Detdils", "Fail=NotFound",LAST);或

B. web_reg_find("Text=Payment Detdils", "Fail=Found",LAST);

代碼思路:

1.“Payment Details” 為你要檢查的文本;

2. 若是A代碼:腳本執(zhí)行到此處,若沒有找到check的字符串,腳本將FAIL, 并且停止執(zhí)行下去。反之,則一直執(zhí)行下去。

3. 若是B代碼:腳本執(zhí)行到此處,若找到check的字符串,腳本將FAIL, 并且停止執(zhí)行下去。反之,則一直執(zhí)行下去】

使用該函數(shù)注意事項:該函數(shù)是在緩存中查找相應(yīng)的內(nèi)容,所以要放在查找內(nèi)容之前;通常情況下寫在如下六個函數(shù)之前:Web_castom_request(); web_image(); web_link(); web_submit_data(); web_submit_form(); web_url();

使用技巧:在該函數(shù)的參數(shù)中有個“SaveCount”,該參數(shù)可以記錄在緩存中查找內(nèi)容出現(xiàn)的次數(shù),我們可以使用該值,來判斷要查找的內(nèi)容是否被找到,下面舉個例子來說明:(引用LR的幫助中的例子)

// Run the Web Tours sample

web_url("MercuryWebTours",

"URL=http://localhost/MercuryWebTours/",

"Resource=0",

"RecContentType=text/html",

"Referer=",

"Snapshot=t1.inf",

"Mode=HTML",

LAST);

// Set up check for successful login by looking for "Welcome"

web_reg_find("Text=Welcome",

"SaveCount=Welcome_Count",

LAST);

// Now log in

web_submit_form("login.pl",

"Snapshot=t2.inf",

ITEMDATA,

"Name=username", "Value=jojo", ENDITEM,

Name=password", "Value=bean", ENDITEM,

"Name=login.x", "Value=35", ENDITEM,

"Name=login.y", "Value=14", ENDITEM,

LAST);

// Check result

if (atoi(lr_eval_string("{Welcome_Count}")) > 0){ //判斷如果Welcome字符串出現(xiàn)次數(shù)大于0

????lr_output_message("Log on successful."); }//在日志中輸出Log on successful

else{ //如果出現(xiàn)次數(shù)小于等于

lr_error_message("Log on failed"); //在日志中輸出Log on failed

return(0); }

我覺得這個方法非常有用,我們可以舉一反三,應(yīng)用到我們實際的項目

注:在錄制過程中添加的檢查點,用到的函數(shù)是web_reg_find(),且參數(shù)只有“Text=”

3、web_image_check()函數(shù)參數(shù)說明:

web_image_check("web_image_check","Alt=","Src=",LAST);

參數(shù)解釋:“Alt”和“Src”的值直接取該圖片在網(wǎng)頁源代碼中相應(yīng)參數(shù)的值;

注意事項:使用該函數(shù)時,要在Vuser->Run-Tme Settings中勾選Enable Image and text check,具體操作請看web_find()中的注意事項。

經(jīng)過測試,該函數(shù)用到查找內(nèi)容前面或后面,都不影響查找結(jié)果。

舉例說明(腳本)

該腳本記錄的是登陸系統(tǒng)后退出的操作,在腳本中用到atoi()函數(shù)和lr_eval_string(”{SaveCount定義的變量}”)兩個函數(shù)結(jié)合使用,判斷查找內(nèi)容出現(xiàn)的次數(shù)是否大于0,若大于0,則輸入登錄成功的信息。

vuser_init()

{

????web_url("xjcost",

????"URL=http://gczj-server8:9205/xjcost/",

????"Resource=0",

????"RecContentType=text/html",

????"Referer=",

????"Snapshot=t1.inf",

????"Mode=HTML",

????EXTRARES,

????"Url=jsp/images/index/index.swf", ENDITEM,

????"Url=jsp/images/index/xxfb2.gif", ENDITEM,

???? "Url=jsp/images/index/ywpt2.gif", ENDITEM,

??? ?LAST);

???? web_url("userAction.struts",

???? "URL=http://gczj-server8:9205/xjcost/userAction.struts?actionType=reLogin",

???? "Resource=0",

???? "RecContentType=text/html",

???? "Referer=",

????"Snapshot=t2.inf",

???? "Mode=HTML",

???? LAST);

????return 0;

}

Action()

{

????lr_start_transaction("Log_on");

????lr_rendezvous("Log_on");

???? web_add_cookie("userAccount=admin; DOMAIN=gczj-server8");

????web_reg_find("Text=歡迎您",

????"SaveCount=歡迎您_Count",

???? LAST);

????web_image_check("web_image_check",

????"Src=/xjcost/jsp/images/index1/edit_01.gif",

???? LAST);

????web_submit_data("userLogin.struts",

????"Action=http://gczj-server8:9205/xjcost/userLogin.struts?actionType=userLogin",

????"Method=POST",

????"RecContentType=text/html",

????"Referer=http://gczj-server8:9205/xjcost/userAction.struts?actionType=reLogin",

????"Snapshot=t3.inf",

????"Mode=HTML",

???? ITEMDATA,

????"Name=userAccount", "Value=admin", ????ENDITEM,

????"Name=pwd", "Value=1111", ENDITEM,

????EXTRARES,

????"Url=jsp/images/index1/edit_01a.gif", "Referer=http://gczj-server8:9205/xjcost/userLogin.struts?actionType=userLogin", ????ENDITEM,

????LAST);

????web_find("web_find",

????"What=歡迎您",

????LAST);

????lr_end_transaction("Log_on",LR_AUTO);

????//檢查是否登錄成功

???? //如果“歡迎您”這個字符出現(xiàn)次數(shù)大于0,輸出“Log on successfully!”

????if(atoi(lr_eval_string("{歡迎您_Count}"))>0)

???? lr_output_message("Log on successfully!");

???? else

????lr_error_message("Log on failed!");

????return 0;

????return 0;

}

//atoi()函數(shù)的作用是將一個ASCII字符串轉(zhuǎn)換為整型

//lr_eval_string()函數(shù)作用是取得參數(shù)值,將字符串變量中的參數(shù)值替換為當(dāng)前的參數(shù)值并將這個字符串返回

vuser_end()

{

????lr_think_time(4);

????web_url("userAction.struts_2",

????"URL=http://gczj-server8:9205/xjcost/userAction.struts?actionType=reLogin",

????"Resource=0",

????"RecContentType=text/html",

????"Referer=",

????"Snapshot=t4.inf",

"Mode=HTML",

????LAST);

????return 0;

}

Global.h:

#ifndef _GLOBALS_H

#define _GLOBALS_H

//--------------------------------------------------------------------

// Include Files

#include "lrun.h"

#include "web_api.h"

#include "lrw_custom_body.h"

//--------------------------------------------------------------------

// Global Variables

#endif // _GLOBALS_H

Replay Log常見信息說明

1、web_find()和web_image_check()函數(shù)的日志信息(這兩個日志信息實際上是一樣的,只是輸出的函數(shù)名和參數(shù)不同)

1)信息1Action.c(22): Verification checks not enabled. web_image_check is skipped. See the 'Run-time settings/Preferences/Checks'

[MsgId: MMSG-27197]

Action.c(22): web_image_check was successful

[MsgId: MMSG-26392]

出現(xiàn)該信息,說明沒有勾選Enable Image and text check

2)信息2Action.c(22): "web_image_check" succeeded (1 occurrence(s) found. Alt="", Src="/xjcost/jsp/images/index1/edit_01.gif")

[MsgId: MMSG-27192]

Action.c(22): web_image_check was successful

[MsgId: MMSG-26392]

出現(xiàn)該信息,說明檢查點設(shè)置成功,且已經(jīng)查找到信息

3)信息3Action.c(22): Error -27191: "web_image_check" failed (0 occurrence(s) found. Alt="", Src="/xjcost/jsp/images/index1/edit_1.gif")

[MsgId: MERR-27191]

Action.c(22): web_image_check highest severity level was "ERROR"

[MsgId: MMSG-26391]

出現(xiàn)該信息,說明要查找的內(nèi)容沒有找到。這時依次嘗試以下操作:

(1)檢查參數(shù)的信息是否寫錯;

(2)如果是web_find(),檢查函數(shù)的位置是否在要查找內(nèi)容的后面;

(3)如果是web_image_check(),查看該圖片的源代碼,看其是否是這個頁面上的圖片,很可能是圖片選擇錯誤,即所選圖片不屬于該頁面。

2、web_reg_find()函數(shù)的日志信息

1)信息1Action.c(15): Registering web_reg_find was successful

[MsgId: MMSG-26390]

出現(xiàn)該信息,說明內(nèi)容已查找到

2)信息2Action.c(27): Error -26366: "Text=ABC" not found for web_reg_find

[MsgId: MERR-26366]

Action.c(27): web_submit_data("userLogin.struts") highest severity level was "ERROR", 18364 body bytes, 918 header bytes, 13 chunking overhead bytes

[MsgId: MMSG-26387]

該信息在replay log頁面是紅色顯示的,說明沒有找到內(nèi)容,出現(xiàn)此情況嘗試以下兩個操作:

(1)參數(shù)的信息是否正確;

(2)查看該函數(shù)是否在查找內(nèi)容的前面。

插入函數(shù)的方法:

1、 手工寫入,在需要插入函數(shù)的位置手工寫入該函數(shù);

2、 光標(biāo)停留在要插入函數(shù)的位置,在INSERT菜單中,選擇new step,在列表中選擇或查找要插入的函數(shù),根據(jù)提示填寫必要的參數(shù);

3、 在tree view模式下,在樹狀菜單中選中要插入函數(shù)的位置,右鍵,選擇insert after或insert before,根據(jù)提示填寫必要的參數(shù);

總結(jié):

1、 這兩個函數(shù)函數(shù)類型不同,WEB_FIND是普通函數(shù),WEB_REG_FIND是注冊函數(shù);

2、 WEB_FIND使用時必須開啟內(nèi)容檢查選項,而WEB_REG_FIND則不沒有此限制;

3、 WEB_FIND只能用在基于HTML模式錄制的腳本中,而WEB_REG_FIND沒有此限制;

4、 WEB_FIND是在返回的頁面中進(jìn)行內(nèi)容查找,WEB_REG_FIND是在緩存中進(jìn)行查找;

5、 WEB_FIND在執(zhí)行效率上不如WEB_REG_FIND;

轉(zhuǎn)載于:https://www.cnblogs.com/mylonelycodelife/archive/2013/04/24/3040245.html

總結(jié)

以上是生活随笔為你收集整理的LoadRunner学习第四天——检查点学习(转载)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。