一、web_custom_request函数介绍

LoadRunner提供的web_custom_request函数可以用于实现参数的动态生成。在LoadRunner中,web_reg_save_param和custom_request都常于处理参数的动态生成。

web_reg_save_param函数是大家都已经熟悉的了,它的主要作用是从一个response中获得后续的request需要使用的数据,然后将其作为一个参数保存下来,供后续步骤使用。该方法在LoadRunner中被称为Correlation(关联)。

web_custom_request函数则可以用于完全自定义向服务端发送的request

web_custom_request方法的原型是:
int web_custom_request (const char *RequestName, <List of Attributes>,[EXTRARES, <List of Resource Attributes>,] LAST );其中List of Attributes的主要项目是Method,URL和BODY等.

下面再介绍两个事例:

/*
脚本名称:web_custom_request事例
脚本功能:通过登录WebTours的操作来演示web_custom_request函数的使用
使用的技术:关联和检查点
*/

Action()
{
    //定义一个变量,进行判断是否登录成功时使用
    int tag=0;

    //对userSession进行关联
    //  <input type=hidden name=userSession value=110044.482462535fzzAtVDpAzzzzzzHDDQzcptHit>
    web_reg_save_param("userID","LB=<input type=hidden name=userSession value=","RB=>",LAST);


    web_url("WebTours", 
        "URL=http://127.0.0.1:1080/WebTours/", 
        "Resource=0", 
        "RecContentType=text/html", 
        "Referer=", 
        "Snapshot=t1.inf", 
        "Mode=HTML", 
        LAST);

    lr_think_time(9);

    //检查点设置
    tag=web_reg_find("Text=jojo","Search=ALL",LAST);

    /*利用web_custom_request函数自定义请求*/
    web_custom_request("login.pl",
                       "Method=POST",
                       "URL=http://127.0.0.1:1080/WebTours/login.pl",
                       "Body=userSession={userID}&username=jojo&password=bean&JSFormSubmit=off&login.x=54&login.y=8",
                       LAST);

    if(tag==0)
        lr_output_message("login successful!");
    else
        lr_output_message("login failed");
    /*
    web_submit_form("login.pl", 
        "Snapshot=t2.inf", 
        ITEMDATA, 
        "Name=username", "Value=jojo", ENDITEM, 
        "Name=password", "Value=bean", ENDITEM, 
        "Name=login.x", "Value=54", ENDITEM, 
        "Name=login.y", "Value=8", ENDITEM, 
        LAST);
    */

    web_image("SignOff Button", 
        "Alt=SignOff Button", 
        "Snapshot=t3.inf", 
        LAST);

    lr_output_message("signoff successful");

    return 0;
}
View Code

相关文章: