LoadRunner12 VUG脚本录制——webtours案例,系列操作及源码解析

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_37600187/article/details/82733353

总括:

VUG脚本录制——webtours案例:登录、订票、选择票、支付、查看、退出一系列事务,调试增强脚本。

涉及技术及知识点:

1)脚本常规设置之——订票正常循环5次、扩展日志查看、关闭日志查看ouput中打印提示、脚本乱码设置等;
2)脚本增强之——关联函数:登录、选择票务、支付判断订票是否成功,3处分别写关联函数,调试运行脚本,成功。(注意:动态值从response中获取确认无误);
3)脚本增强之——参数化:订多张票时,设置每张票不同出发和到达城市,调试运行脚本,成功。(注意:选择系统自带的城市,否则关联不到城市,脚本回放不成功);
4)脚本增强之——登录/退出只执行一次,设置,调试运行脚本,成功;
5)脚本增强之——关联函数中增加顺序选择,调试运行脚本,成功。(ord,票务顺序不对,未增加ord时所有票都是一张);
6)脚本增强之——判断订票是否成功(if/else语句),打印订票成功、失败的提示语,调试回放脚本,成功;
7)脚本增强之——在init和end中打印提示语,便于在output中查看提示是否设置成功。

上述内容源码展示:

一、vuser_init部分:

vuser_init()
{
    
    //name="userSession" value="124405.995382746zDQQVDDpDiHfDiDQtpiAADcf"/>
    
    web_reg_save_param("seesion",
                      "LB=name=\"userSession\" value=\"",
                     "RB=\"/>",
                    LAST);

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

    lr_think_time(34);

    lr_start_transaction("1_login");

    web_submit_data("login.pl", 
        "Action=http://127.0.0.1:1080/cgi-bin/login.pl", 
        "Method=POST", 
        "TargetFrame=body", 
        "RecContentType=text/html", 
        "Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?in=home", 
        "Snapshot=t2.inf", 
        "Mode=HTML", 
        ITEMDATA, 
        "Name=userSession", "Value={seesion}", ENDITEM, 
        "Name=username", "Value=jojo", ENDITEM, 
        "Name=password", "Value=bean", ENDITEM, 
        "Name=JSFormSubmit", "Value=off", ENDITEM, 
        "Name=login.x", "Value=0", ENDITEM, 
        "Name=login.y", "Value=0", ENDITEM, 
        LAST);

    lr_end_transaction("1_login",LR_AUTO);
    
    lr_output_message("这里是init");
    
    return 0;
}

二、Action部分:

Action()
{

    lr_think_time(6);

    web_url("Search Flights Button", 
        "URL=http://127.0.0.1:1080/cgi-bin/welcome.pl?page=search", 
        "TargetFrame=body", 
        "Resource=0", 
        "RecContentType=text/html", 
        "Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?page=menu&in=home", 
        "Snapshot=t3.inf", 
        "Mode=HTML", 
        LAST);

    lr_think_time(36);
        
    lr_start_transaction("2_findflight");
    
    //name="outboundFlight" value="242;193;09/02/2018">
    
    web_reg_save_param("fight",
                     "LB=name=\"outboundFlight\" value=\"",
                    "RB=\">",
                    "Ord=3",
                   LAST);

    
    web_submit_data("reservations.pl", 
        "Action=http://127.0.0.1:1080/cgi-bin/reservations.pl", 
        "Method=POST", 
        "TargetFrame=", 
        "RecContentType=text/html", 
        "Referer=http://127.0.0.1:1080/cgi-bin/reservations.pl?page=welcome", 
        "Snapshot=t4.inf", 
        "Mode=HTML", 
        ITEMDATA, 
        "Name=advanceDiscount", "Value=0", ENDITEM, 
        "Name=depart", "Value={departcity}", ENDITEM, 
        "Name=departDate", "Value=09/02/2018", ENDITEM, 
        "Name=arrive", "Value={arrivecity}", ENDITEM, 
        "Name=returnDate", "Value=09/03/2018", ENDITEM, 
        "Name=numPassengers", "Value=1", ENDITEM, 
        "Name=seatPref", "Value=Window", ENDITEM, 
        "Name=seatType", "Value=First", ENDITEM, 
        "Name=.cgifields", "Value=roundtrip", ENDITEM, 
        "Name=.cgifields", "Value=seatType", ENDITEM, 
        "Name=.cgifields", "Value=seatPref", ENDITEM, 
        "Name=findFlights.x", "Value=42", ENDITEM, 
        "Name=findFlights.y", "Value=7", ENDITEM, 
        LAST);

    lr_end_transaction("2_findflight",LR_AUTO);

    lr_think_time(24);

    lr_start_transaction("3_selectflight");

    web_submit_data("reservations.pl_2", 
        "Action=http://127.0.0.1:1080/cgi-bin/reservations.pl", 
        "Method=POST", 
        "TargetFrame=", 
        "RecContentType=text/html", 
        "Referer=http://127.0.0.1:1080/cgi-bin/reservations.pl", 
        "Snapshot=t5.inf", 
        "Mode=HTML", 
        ITEMDATA, 
        "Name=outboundFlight", "Value={fight}", ENDITEM, 
        "Name=numPassengers", "Value=1", ENDITEM, 
        "Name=advanceDiscount", "Value=0", ENDITEM, 
        "Name=seatType", "Value=First", ENDITEM, 
        "Name=seatPref", "Value=Window", ENDITEM, 
        "Name=reserveFlights.x", "Value=51", ENDITEM, 
        "Name=reserveFlights.y", "Value=14", ENDITEM, 
        LAST);

    lr_end_transaction("3_selectflight",LR_AUTO);

    lr_think_time(40);

    lr_start_transaction("4_payment");
    
  //<small><B>Thank you for booking through Web Tours.</B></small>
   
    web_reg_save_param("message",
                     "LB=<small><B>",
                    "RB=</B></small>",
                   LAST);

  
    web_submit_data("reservations.pl_3", 
        "Action=http://127.0.0.1:1080/cgi-bin/reservations.pl", 
        "Method=POST", 
        "TargetFrame=", 
        "RecContentType=text/html", 
        "Referer=http://127.0.0.1:1080/cgi-bin/reservations.pl", 
        "Snapshot=t6.inf", 
        "Mode=HTML", 
        ITEMDATA, 
        "Name=firstName", "Value=Jojo", ENDITEM, 
        "Name=lastName", "Value=Bean", ENDITEM, 
        "Name=address1", "Value=beijing", ENDITEM, 
        "Name=address2", "Value=shanghai", ENDITEM, 
        "Name=pass1", "Value=Jojo Bean", ENDITEM, 
        "Name=creditCard", "Value=123456789", ENDITEM, 
        "Name=expDate", "Value=12345", ENDITEM, 
        "Name=oldCCOption", "Value=", ENDITEM, 
        "Name=numPassengers", "Value=1", ENDITEM, 
        "Name=seatType", "Value=First", ENDITEM, 
        "Name=seatPref", "Value=Window", ENDITEM, 
        "Name=outboundFlight", "Value={fight}", ENDITEM, 
        "Name=advanceDiscount", "Value=0", ENDITEM, 
        "Name=returnFlight", "Value=", ENDITEM, 
        "Name=JSFormSubmit", "Value=off", ENDITEM, 
        "Name=.cgifields", "Value=saveCC", ENDITEM, 
        "Name=buyFlights.x", "Value=58", ENDITEM, 
        "Name=buyFlights.y", "Value=10", ENDITEM, 
        LAST);
  
  if(strstr(lr_eval_string("{message}"),"Thank you for booking through Web Tours.")!=NULL)
  {
         lr_end_transaction("4_payment",LR_PASS);
         
         lr_output_message("订票成功,departcity:%s,arrivecity:%s",
                       lr_eval_string("{departcity}"),
                       lr_eval_string("{arrivecity}"));
  }
  else
  {    
          lr_end_transaction("4_payment",LR_FAIL);
          lr_output_message("订票失败");
  }


    lr_think_time(9);  

 #手动插入事务
    lr_start_transaction("5_WatchFlight");

    web_url("Itinerary Button", 
        "URL=http://127.0.0.1:1080/cgi-bin/welcome.pl?page=itinerary", 
        "TargetFrame=body", 
        "Resource=0", 
        "RecContentType=text/html", 
        "Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?page=menu&in=flights", 
        "Snapshot=t7.inf", 
        "Mode=HTML", 
        LAST);
    
    lr_end_transaction("5_WatchFlight", LR_AUTO);

    lr_think_time(34);

    return 0;
}

三、vuser_end部分:

vuser_end()
{
    lr_start_transaction("6_sign off");

    web_url("SignOff Button", 
        "URL=http://127.0.0.1:1080/cgi-bin/welcome.pl?signOff=1", 
        "TargetFrame=body", 
        "Resource=0", 
        "RecContentType=text/html", 
        "Referer=http://127.0.0.1:1080/cgi-bin/nav.pl?page=menu&in=itinerary", 
        "Snapshot=t8.inf", 
        "Mode=HTML", 
        LAST);

    lr_end_transaction("6_sign off",LR_AUTO);
    
    lr_output_message("这里是end");
    
    return 0;
}

备注:参数.dat文件:(详解及dat文件撰写规则后续详细整理)

猜你喜欢

转载自blog.csdn.net/weixin_37600187/article/details/82733353
今日推荐