天天看點

Loadrunner在Java Vuser當中常用的一些Web函數

版權聲明:本文為部落客原創文章,未經部落客允許不得轉載。歡迎通路我的部落格 https://blog.csdn.net/smooth00/article/details/75119666

對于Loadrunner,習慣了錄制腳本的初學者們,會覺得通過Java vuser來寫腳本比較陌生,其實看完以下的Loadrunner常用Web函數對比,你就不會覺得Java Vuser有多麼神秘了,而且通過Java寫性能測試腳本的靈活性要遠遠高于C語言(因為Java相對于C要容易的多,而且Java有大量的開源元件和類庫可以供你進行擴充開發,幾乎做到了沒有測試不了的應用以及API接口),進行Java Vuser開發,也比.Net Vuser開發要簡單的多(相較于安裝一堆.Net元件或插件,Java Vuser隻需要引用一下JDK路徑就行,Loadrunner11支援JDK1.6,Loadrunner12支援JDK1.7)。

常用函數 Java Vuser  協定腳本 Web-HTML/HTTP協定腳本

引用類

或庫檔案

import lrapi.lr;

import lrapi.web;

通過globals.h檔案引用
think_time lr.think_time(3); lr_think_time(3);
transaction

lr.start_transaction("事務");

......

lr.end_transaction("事務", lr.AUTO);

lr_start_transaction("事務");

lr_end_transaction("事務", LR_AUTO);

set_option

web.set_option("MaxRedirectionDepth", "0",

new String[]{"LAST"});

web_set_option("MaxRedirectionDepth", "0",

LAST );

set_user

web.set_user("cluster",

        //lr.decrypt("58cf7265b1677820107f74"),

        "cluster",

        "172.17.2.89:8081");

web_set_user("cluster",

        //lr_decrypt("58cf7265b1677820107f74"),

add_header

web.add_header("Authorization",

lr.eval_string("<BasicAuth>"));

web_add_header("Authorization",

lr_eval_string("{BasicAuth}"));

output

message

lr.save_string("test","tParam");

lr.output_message("tParam的值為:"

      +lr.eval_string("<tParam>"));

lr_save_string("test","tParam");

lr_output_message("tParam的值為:%s",

      lr_eval_string("{tParam}"));

web_url

web.url("Show status",

    "URL=http://172.17.2.89:8081/kettle/status/",

    new String[]{

        "Resource=0",

        "RecContentType=text/html",

        "Referer=http://172.17.2.89:8081/",

        "Snapshot=t3.inf",

        "Mode=HTTP",

        "LAST"});

web_url("Show status",

    "URL=http://172.17.2.89:8081/kettle/status/",

    "Resource=0",

    "RecContentType=text/html",

    "Referer=http://172.17.2.89:8081/",

    "Snapshot=t3.inf",

    "Mode=HTTP",

    LAST);

web_

submit_data

web.submit_data("executeJob",

    "Action=http://172.17.2.89:8081/kettle/executeJob/",

        "Method=POST",

        "RecContentType=text/html",

        "Referer=",

        "Mode=HTTP"},

    new String[]{// "ITEMDATA",  不要加這條

        "Name=job", "Value=/DZ/job/HYHZ", "ENDITEM",

        "Name=level", "Value=Debug", "ENDITEM",

        "Name=rep", "Value=DZHY0620", "ENDITEM",

web_submit_data("executeJob",

    "Action=http://172.17.2.89:8081/kettle/executeJob/",

    "Method=POST",

    "RecContentType=text/html",

    "Referer=",

    "Mode=HTTP",

    ITEMDATA,

        "Name=job", "Value=/DZ/job/HYHZ", ENDITEM,

        "Name=level", "Value=Debug", ENDITEM,

        "Name=rep", "Value=DZHY0620", ENDITEM,

custom_request

String htmlBody="這裡是body串";

web.custom_request("ViewStreamLogin",

    "Method=POST",

    new String[]{

        "URL=http:/*.*.cn/login?user=test&passwd=123",

        htmlBody,

        "TargetFrame=",

web_custom_request("ViewStreamLogin",

    "URL=http:/*.*.cn/login?user=test&passwd=123",

    "TargetFrame=",

    "Resource=0",

    "Body=這裡是body串",

submit_form

web.submit_form("authenticate",

        "Snapshot=t2.inf"},

        "Name=user", "Value=root", ENDITEM,

        "Name=passwd", "Value=2012", ENDITEM,

        "Name=key", "Value=<OFF>", ENDITEM,

web_submit_form("authenticate",

    "Snapshot=t2.inf",

    ITEMDATA,

        "Name=key", "Value={OFF}", ENDITEM,

1、以下列出Loadrunner所有的Java LR Common函數:

2、以下列出Loadrunner所有的Java LR Web函數:

特别說明:Java Vuser 是自定義的 Java 虛拟使用者腳本,腳本中可以使用标準的Java語言。這種虛拟使用者一般采用純手工編寫(當然Loadrunner11、12也能支援部分Java錄制,包括Java Applet、Java Application、Java Over HTTP)。Java虛拟使用者适用範圍非常廣,歸納起來主要有兩大類:一類是不太适合錄制的業務功能點的性能測試,例如網頁上Http檔案的下載下傳過程、視訊播放等;另一類是基于Java語言開發的應用系統的性能測試,這類應用更适合采用Java虛拟使用者進行測試。

        用Java Vuser實作無法錄制的測試需求,這類測試需求往往關注于對伺服器産生的壓力,重點測試在一定壓力下伺服器的負載情況,為評估、部署、調優系統提供參考。在這類測試工作中,Java的作用僅是一門語言,用于輔助測試人員完成測試程式的開發。在性能測試工作中,不能錄制的測試點很多,主要有以下幾類:

(一)含有控件的Web應用:在Web應用中,很多包含一些插件的浏覽器應用經常不能錄制。這類應用往往涉及很多協定,是以錄制起來不是特别友善。對于這類應用,可以用Java語言調用其功能來完成使用者行為的模拟。

(二)一些和媒體播放、檔案下載下傳等相關的應用:媒體播放或檔案下載下傳等過程的錄制往往不容易控制,如果是應用基于P2P的協定,則會更加複雜。是以,這類測試隻能由測試人員開發虛拟使用者腳本來完成。

(三)用Java Vuser測試基于Java語言的應用系統性能:相比前面,基于Java語言開發的應用系統,在性能測試中采用Java虛拟使用者更顯得“門當戶對”。這類虛拟使用者主要應用在下面兩類測試中:

(1)核心算法或業務的執行效率

        對銀行、電信等大型的基于J2EE的架構應用系統中,開發階段的性能測試是必不可少的。為了降低後期遇到性能問題的風險,往往在開發階段進行一些核心業務的性能測試。這些核心業務或要求較高的執行效率,或者要求支援較多使用者的并發。是以,可以利用Java Vuser來測試這些業務的執行效率。

(2)Java應用中不能錄制的業務子產品

        很多時候,一些J2EE架構的業務系統用LoadRunner錄制起來不是特别友善,例如一些Java智能用戶端程式。這時可以手工編寫測試代碼,完成測試任務。與非Java應用相比,Java 應用中不能錄制的業務功能更适合采用Java虛拟使用者,因為可以直接對一些方法進行調用。

        由于Java語言的強大功能,Java虛拟使用者的應用遠不止上面這些。