Loadrunner關於頁面檢查的幾個函式詳解
環境:
Loadrunner版本:8.0
自建一個test.html檔案:
<html>
<head>
<meta name="google1" content="google2"/>
<title>google3</title></head>
<body>
google4:<input type="text" name="google5" />
<input type="submit" value="google6"/><br>
<a href="http://www.google.com/calendar/render?hl=zh-CN&tab=wc" class=gb2>google7</a><br>
<img src=http://www.google.cn/intl/zh-CN/images/logo_cn.gif width=200 height=88 border=0 alt="google8" title="Google9">
<img src=http://www.google.cn/intl/zh-CN/images/logo_cn.gif width=200 height=88 border=0 alt="google8" title="Google9">
</body>
int web_image_check(const char*CheckName,<List of Attributes>,<"Alt=alt"|| "Src=src">, LAST );
引數:
1、CheckName:Check名稱。
2、List of Attributes:
支援的屬性有:Frame(在多Frame的情況下,定義要查詢Frame的範圍)。
支援的選項有:
Expect:檢查通過的條件,預設為Found
Matchcase:是否區分大小寫,預設為no
Repeat:找到第一個符合條件字串後,是否還繼續搜尋,預設為yes
Report:什麼情況下(success、failure、always)顯示檢查結果,預設always
Onfailure:失敗(expect的值決定)的情況下,是否繼續,預設為Continue on Error。
3、Alt:圖片的ALT標記。
4、Src:圖片的SRC標記。
1、注意勾上Runtime Settings—Internet Protocl—Preferences—Checks:Enable Image and text check
2、注意該函式放到web_url後面,且Web_url的Mode須為html(此函式僅僅支援基於HTML的指令碼)
3、Web_image_check檢查指定的圖象是否在HTML頁面中出現。
4、Alt或者Src兩者必須有一個在引數列表中出現。如果兩項都通過,那麼檢查成功。
Loadrunner指令碼:
……
web_url("google",
"URL=http://127.0.0.1:8000/test.html",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
web_image_check("web_image_check",
"expect=NotFound",
"Alt=Google8",
"matchcase=no",
"repeat=no",
"report=failure",
"Onfailure=abort",
LAST);
web_find("web_find",
"What=Google",
LAST);
……
執行結果:
Starting action Action.
Action.c(15): Found resource "http://www.google.cn/intl/zh-CN/images/logo_cn.gif" in HTML "http://127.0.0.1:8000/test.html" [MsgId: MMSG-26659]
Action.c(15): web_url("google") was successful, 11968 body bytes, 521 header bytes [MsgId: MMSG-26386]
Action.c(35): Fatal Error -27191: "web_image_check" failed (1 occurrence(s) found. Alt="Google8", Src="") [MsgId: MERR-27191]
Action.c(35): web_image_check highest severity level was "FATAL ERROR" [MsgId: MMSG-26391]
Abort was called from an action.
Ending Vuser...
解釋:
1、 expect=NotFound,由於找到了符合要求的結果,所以為失敗
2、 repeat=no,實際上有兩個符合條件的結果,不過不繼續,所以1 occurrence(s) found
3、 Onfailure=abort,該檢查結果為fail,所以abort,後面的檔案檢查未執行。
二、web_find
int web_find (const char*StepName, <Attributes and Specifications list>,char*searchstring, LAST );
引數:
1、StepName:Check名稱
2、Attributes and Specifications list:
支援的屬性有:
Expect:定義在什麼情況下函式檢查成功:找到了指定的搜尋標準或者沒有找到。例如說,可以檢查指定的錯誤資訊是否出現在web頁面中。合法的值有2個:found和notfound。預設值是“found”。
Matchcase:指定搜尋是否區分大小寫,預設為no。
Repeat:指定當第一次發現要查詢的字串時,搜尋是否繼續。當一個web頁面中包含多個被查詢的字串時,此引數是非常有用的。合法的值有2個:yes,no。預設值是“yes”。
日誌中顯示此函式的檢查結果。合法的值有:success,failure,always。預設值是“always”。
Report:指定在什麼情況下,VuGen在執行
Onfailure:此引數決定在函式檢查失敗後,Vuser是否中斷。引數值是abort。如果指定了Onfailure=abort,當函式檢查失敗時,不論在執行時設定中的error-handling(Runtime Settings—Miscellaneous)是什麼,指令碼都會中斷。如果沒有指定Onfailure=abort,那麼執行時設定中error-handling將會起作用。
支援的特性有:RightOf, LeftOf (不支援7.x及更高版本)。
RightOf:要查詢的字串右邊的內容。
LeftOf:要查詢的字串左邊的內容。
3、Searchstring:需要查詢的字串,格式為“What=stringxyz”。此搜尋不區分大小寫。
4、LAST:屬性列表結束符。
1、注意勾上Runtime Settings—Internet Protocl—Preferences—Checks:Enable Image and text check
2、注意該函式放到web_url後面,且Web_url的Mode須為html
3、此函式的作用是在HTML頁面中查詢指定的字串。
4、函式只能在基於HTML錄製的指令碼中使用。當指定的HTML請求全部完成以後,開始執行搜尋過程,比web_reg_find要慢。
5、web_find函式在C語言的指令碼中已經被web_reg_find所替代,web_reg_find執行速度比較快,而且在HTML-based和URL-based的錄製方式中都可以使用。
6、在C語言指令碼中,web_find是向後相容的。Java和Visual Basic指令碼中不支援它。
7、WAP和WSP協議不支援。
示例:
Loadrunner指令碼:
……
web_reg_find("Text/IC=google",
"Search=Body",
LAST);
web_url("google",
"URL=http://127.0.0.1:8000/test.html",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
web_find("web_find",
"What=Google",
LAST);
……
執行結果:
Starting action Action.
Action.c(7): Registering web_reg_find was successful [MsgId: MMSG-26390]
Action.c(15): Found resource "http://www.google.cn/intl/zh-CN/images/logo_cn.gif" in HTML "http://127.0.0.1:8000/test.html" [MsgId: MMSG-26659]
Action.c(15): Registered web_reg_find successful for "Text=google" (count=14) [MsgId: MMSG-26364]
Action.c(15): web_url("google") was successful, 11968 body bytes, 521 header bytes [MsgId: MMSG-26386]
Action.c(44): "web_find" successful. 3 occurrence(s) of "Google" found (RightOf="", LeftOf="") [MsgId: MMSG-27196]
Action.c(44): web_find was successful [MsgId: MMSG-26392]
Ending action Action.
解釋:
可以看出兩個函式最後的檢索結果不一樣,web_reg_find發現了14個,web_find只發現了3個。這是在web_find裡再新增一個屬性—"matchcase=yes",執行結果為:
Action.c(44): Error -27195: "web_find" failed. 0 occurrence(s) of "Google" found (RightOf="", LeftOf="") [MsgId: MERR-27195]
Action.c(44): web_find highest severity level was "ERROR" [MsgId: MMSG-26391]
web_find只檢索“>”、“<”間的內容。
三、web_reg_find
語法:int web_reg_find (const char*attribute_list, LAST);
引數:
1、attribute_list:
通過Name=Value對來傳遞引數。例如“Text=string”。Text,TextPfx,TextSfx三個必須有一個出現。其他的屬性是可選的。
Text:要搜尋的字串,字串必須非空,以NULL結尾。可以使用text flags自定義搜尋字串。
TextPfx:要搜尋的字串的直接字首。
TextSfx:要搜尋的字串的直接字尾。
Search:搜尋的範圍。可選的值是:Headers(search only the headers) 、Body(search only the Body data)、Noresource (search only the HTML body, excluding headers and resources)、ALL (search body , headers, and resources),預設值是“BODY”。
SaveCount:儲存到引數中的匹配的字串的個數。使用這個屬性,需要指定“SaveCount=param”。檢查操作被執行後,param 的值是null結尾的數字型別的值。
Fail:設定函式檢查在什麼狀態下失敗。可以是“Found或“NotFound”。預設是“NotFound”。
ID:日誌檔案中標識此函式的一個字串。
RelFrameId:相關聯的FrameId。注意:此引數在GUI級別的指令碼中不受支援。
2、LAST:屬性列表結束的標記符。
1、web_reg_find屬於註冊函式,註冊一個在web頁面中搜索文字字串的請求,在接下來Action(象web_url)類函式中執行搜尋。
2、通過查詢期望的字元是否存在來驗證是否返回了期望的頁面。例如,通過查詢“Welcome”來檢查主頁是否完全打開了。也可以查詢“Error”檢查瀏覽器是否發生錯誤。還可以使用此函式註冊一個請求來統計特定字串出現的次數。
如果檢查失敗,在接下來的Action類的函式中會報告錯誤。此函式僅僅註冊請求,並不執行。函式的返回值只表明註冊是否成功,並不表示檢查的結果。
3、此函式不僅能夠查詢text,還能查詢到圍繞著text的strings。不要同時指定text和字首字尾。
示例:
Loadrunner指令碼:
……
web_reg_find ("Text/IC=google",
"Search=Body",
LAST);
web_url("google",
"URL=http://127.0.0.1:8000/test.html",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode= HTTP ",
LAST);
web_url("google",
"URL=http://www.baidu.com/",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTTP",
LAST);
……
執行結果:
Starting action Action.
Action.c(7): Registering web_reg_find was successful [MsgId: MMSG-26390]
Action.c(12): Registered web_reg_find successful for "Text=google" (count=14) [MsgId: MMSG-26364]
Action.c(12): web_url("google") was successful, 538 body bytes, 295 header bytes [MsgId: MMSG-26386]
Action.c(22): web_url("google") was successful, 1714 body bytes, 372 header bytes [MsgId: MMSG-26386]
Ending action Action.
解釋:
由上面的結果可以看出,web_reg_find 只在其之後的一個Action類函式中執行搜尋。
四、web_global_verification
int web_global_verification(<List of Attributes>, LAST );
List of Attributes:
Text:此屬性是一個非空的,以NULL結尾的字串,表示要查詢的內容。語法是”Text=string”。還可以使用text flags自定義字串。
TextPfx:沒有指定Text的情況下使用此屬性。要查詢的字串的字首。語法是” TextPfx =string”。還可以使用text flags自定義字串。
TextSfx:沒有指定Text的情況下使用此屬性。要查詢的字串的字尾。語法是” TextSfx =string”。還可以使用text flags自定義字串。
Search:可選項,在哪裡查詢字串。可選的值是:Headers,Body,NORESOURCE或All。預設值是NORESOURCE。語法是“Search=value”。
Fail:當字串找不到時的處理選項:Found (預設值)或NotFound。Found表示當找到對應的字串時發生了錯誤(例如“Error”)。NotFound表示當找不到字串時發生了錯誤。語法是“Fail=value“。
ID:在日誌檔案中標識當前函式。
注:text flags:/IC表示忽略大小寫;/BIN表示指定的是二進位制資料。
web_global_verification屬於註冊函式,註冊一個在web頁面中搜索文字字串的請求,與web_reg_find只在下一個Action函式中執行搜尋不同的是,它是在之後所有的Action類函式中執行搜尋的。可以搜尋頁面的body,headers,html程式碼或者是整個頁面。
在檢測一些應用程式級別(不通過http狀態碼來表現)的錯誤時,web_global_verification是非常有用的。如果要定位通過HTTP狀態碼錶現的錯誤時,使用web_get_int_property。
查詢範圍:all:這個HTML頁面;Headers:頁面的頭;body:頁面的體,包含所有的資源但不包含頭;NORESOURCE(預設選項):僅僅包含頁面的體,把包括頭和資源。
如果不知道要查詢的精確的文字,或者要查詢的多個文字不是完全相同的,可以使用字首和字尾來表示。這時需要用到TextPfx和TextSfx屬性。這2個屬性必須同時指定,一旦指定了其中一個,就不能指定Text屬性了。
注意:web_global_verification在WAP協議下不能執行。
Loadrunner指令碼:
……
web_global_verification("Text/IC=google",
"Fail=NotFound",
LAST);
web_url("google",
"URL=http://127.0.0.1:8000/test.html",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode= HTTP ",
LAST);
web_url("google",
"URL=http://www.baidu.com/",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTTP",
LAST);
……
執行結果:
Starting action Action.
Action.c(7): Registering web_global_verification was successful [MsgId: MMSG-26390]
Action.c(11): web_url("google") was successful, 538 body bytes, 295 header bytes [MsgId: MMSG-26386]
Action.c(21): Error -26366: "Text=google" not found for web_global_verification [MsgId: MERR-26366]
Action.c(21): web_url("google") highest severity level was "ERROR", 1714 body bytes, 372 header bytes [MsgId: MMSG-26388]
Ending action Action.
由上面的結果可以看出,web_global_verification在其之後所有的Action類函式中執行搜尋。
相關推薦
Loadrunner關於頁面檢查的幾個函式詳解
環境:51Testing軟體測試網]~d$s7C_Loadrunner版本:8.0h3o B4xH.^'| V7QV247706自建一個test.html檔案:51Testing軟體測試網L+/,@+|(TX7p<html>51Testing軟體測試網$l]7QF
Mysql高手系列 - 第10篇:常用的幾十個函式詳解,收藏慢慢看
這是Mysql系列第10篇。 環境:mysql5.7.25,cmd命令中進行演示。 MySQL 數值型函式 函式名稱 作 用 abs 求絕對值 sqrt 求二次方根 mod 求餘數 ceil 和 ceiling 兩個函式功能相同,都是返回不小於引數的最小整數,即向上取整 floo
php抓取頁面的幾種方法詳解
close deb clas win exe _array error: fopen ini 一、 PHP抓取頁面的主要方法:1. file()函數 2. file_get_contents()函數 3. fopen()->fread()->fclose
JAVA幾個關鍵字詳解
成了 同時 tcl 跟著 就是 第一次 官方 pri 區分 本篇旨在幫助準備學習Java以及剛接觸Java的朋友認識、掌握和使用static、this、super、final這幾個關鍵字的使用。Java博大精深,我也是一位正在學習和使用Java的愛好者,文中難免有不妥之處,
C/C++幾個關鍵字詳解——STATIC
STATIC: static關鍵字是C, C++中都存在的關鍵字, 它主要有三種使用方式, 其中前兩種只指在C語言中使用, 第三種在C++中使用(C,C++中具體細微操作不盡相同, 本文以C++為準). (1)區域性靜態變數 (2)外部靜態變數/函式 (3)靜態資料成員/成員函式 下面就這三
C/C++幾個關鍵字詳解———CONST
CONST: const 是由c++採用,並加進標準c中,但是他們的意義完全不同,在舊版本(標準前)的c中,如果想建立一個常量,必須使用前處理器: #define PI 3.14159 此後無論在何處使用PI,都會被前處理器以3.14159替代。編譯器不對PI進行型別檢
RoundingMode 幾個引數詳解 java.math.RoundingMode 幾個引數詳解
第一版 java.math.RoundingMode 幾個引數詳解 java.math.RoundingMode裡面有幾個引數搞得我有點暈,現以個人理解對其一一進行總結: 為了能更好理解,我們可以畫一個XY軸 RoundingMode
關於keil卡在systeminit中,然後出現void HardFault_Handler(void)的幾個問題詳解
版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/u013184273/article/details/83860802 相信很多程式設計師在用keil的時候都會遇到在模擬除錯時,一直停在SystemInit()中的等待晶
正則表示式必須牢記的幾個元字元詳解(java使用例項)
正則表示式元字元 1、常用元字元 . 表示除了換行符之外任意一個字元 \s 空格字元(空格鍵、tab、換行、回車) \S 非空格字元([^\s]) \d 一個數字,(相當於[0-9]) \D 一個非數字的字元,(相當於[^0-9])
檢視記憶體常用的幾個命令詳解
幾乎看什麼核心漏洞分析之類的文章,第一眼都是被 cat /proc/{pid}/maps 產生的一堆奇怪的資訊唬住了,都不敢往下看 居然沒有搜到關於它們的詳細介紹,旁邊也沒有表頭什麼的解釋資訊 那就我來整理一下吧,方便後人 ls /proc 能看到一些數字命名的資料夾,這個
優先順序佇列幾個應用詳解
優先順序佇列區別於普通佇列的一點是:優先順序佇列如果插入的節點是結構體型別,則要在結構體中過載比較操作符函式。示例程式碼如下: //優先順序佇列的使用測試 //優先順序佇列跟對列的使用方式的區別是優先順序佇列在插入元素時 //在將元素插入隊尾後還要根據比較值對該元素進行位
C++面試常見的幾個庫函式詳解
strcpy() 原型宣告:char strcpy(char dest, const char *src); 功能:把從src地址開始且含有NULL結束符的字串複製到以dest開始的地址空間 說明:src和dest所指記憶體區域不可以重疊且dest必須有足夠的空間來容
類和物件-中(6個預設函式詳解)
本文主要是對類的6個預設函式進行講解 類的預設成員函式有6個:建構函式 解構函式
QThread必須要了解的幾個函式
概述 如果想對Qt中的QThread有個更加深刻的瞭解,必須要知道這幾個重要的函式,現在就一一介紹下。 函式介紹 屬性 返回值 函式體 功能 stati
web頁面跳轉幾種方式詳解
在做web開發中,頁面跳轉的方式有很多種,然而有些時候這些跳轉如何用到恰到好處卻很容易被忽視。 客戶端觸發跳轉有如下幾種 使用meta元資訊 ? 1 2 <!--如下表示
Python內建函式詳解【翻譯自python3.6官方文件共68個】
翻譯源 來自:https://docs.python.org/3/library/functions.html abs(x) 返回一個數的絕對值。引數可以是一個整數或一個浮點數。若引數是複數,返回複數的模 all(iterable) 若 可迭代物件中所有元素為真
LoadRunner檔案操作函式詳解
涉及的函式彙總: 檔案的開啟操作 fopen 開啟一個檔案 檔案的關閉操作 fclose 關閉一個檔案 檔案的讀寫操作 fgetc 從檔案中讀取一個字元 fputc 寫一個字元到檔案中去
loadrunner關聯函式詳解
1.什麼值需要關聯?客戶端的某個請求是隨著伺服器端的相應而動態變化的值,則需要關聯。2.web_reg_sava_param舉例:web_reg_save_param("jws_session","LB=JWS_SESSION=\"","RB=\"",LAST);解釋:jws
【小程式】頁面路由觸發的生命週期函式詳解
1、頁面路由、頁面棧 個人看來,頁面路由說白了就是頁面跳轉,也可以看作是頁面入棧和出棧的過程。 官方文件中這樣寫到:(個人比較喜歡看圖表的形式,因為比較清晰) 2、生命週期函式 小程式有5個生命週期函式: 2.1、onLoad():頁面載入時觸發。一個頁面只
Loadrunner常用函式詳解(一)
web_url 語法: Int Web_url(const char *name, const char * url, , [EXTRARES,,LAST) 返回值 成功時返回LR_PASS (0),失敗時返回 LR_FAIL (1)。 引數: Name:VuGen中