zoukankan      html  css  js  c++  java
  • web类协议脚本-飞机订票系统示例

    以下是LR自带的飞机订票系统的Demo,希望能帮助大家。

    Action()
    {
     int iRand;
     int iTmp;
     char *strTmpA;
     char *strTmpB;
     char *strTmpC;
     char *position;
     if ((strTmpA = (char *)malloc(100 * sizeof(char))) == NULL) { 
         lr_output_message ("Insufficient memory available"); 
         return -1; 
        } 
     if ((strTmpB = (char *)malloc(100 * sizeof(char))) == NULL) { 
         lr_output_message ("Insufficient memory available"); 
         return -1; 
     } 
     if ((strTmpC = (char *)malloc(100 * sizeof(char))) == NULL) { 
         lr_output_message ("Insufficient memory available"); 
         return -1; 
     } 
     web_reg_save_param("userSession",
      "LB=<input type=hidden name=userSession value=",
      "RB=>",
      LAST);
     web_url("WebTours", 
      "URL=http://127.0.0.1:1080/WebTours/", 
      "TargetFrame=", 
      "Resource=0", 
      "RecContentType=text/html", 
      "Referer=", 
      "Snapshot=t2.inf", 
      "Mode=HTML", 
      LAST);
     //lr_start_transaction("login");
     //r_think_time(17);
     web_submit_data("login.pl", 
      "Action=http://127.0.0.1:1080/WebTours/login.pl", 
      "Method=POST", 
      "TargetFrame=", 
      "RecContentType=text/html", 
      "Referer=http://127.0.0.1:1080/WebTours/nav.pl?in=home", 
      "Snapshot=t3.inf", 
      "Mode=HTML", 
      ITEMDATA, 
      "Name=userSession", "Value={userSession}", ENDITEM, 
      "Name=username", "Value=demo", ENDITEM, 
      "Name=password", "Value=demo", ENDITEM, 
      "Name=JSFormSubmit", "Value=on", ENDITEM, 
      "Name=login.x", "Value=26", ENDITEM, 
      "Name=login.y", "Value=5", ENDITEM, 
      LAST);
     //lr_end_transaction("login",LR_AUTO);
     lr_start_transaction("order");
     //r_think_time(9);
    web_reg_save_param("City",
      "LB=<option ",
      "RB=</option>",
      "Ord=ALL",
      LAST);
    web_url("Search Flights Button", 
      "URL=http://127.0.0.1:1080/WebTours/welcome.pl?page=search", 
      "TargetFrame=body", 
      "Resource=0", 
      "RecContentType=text/html", 
      "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=home", 
      "Snapshot=t4.inf", 
      "Mode=HTML", 
      LAST);
     web_url("FormDateUpdate.class", 
      "URL=http://127.0.0.1:1080/WebTours/FormDateUpdate.class", 
      "TargetFrame=", 
      "Resource=0", 
      "RecContentType=text/html", 
      "Referer=", 
      "Mode=HTML", 
      LAST);
     web_url("CalSelect.class", 
      "URL=http://127.0.0.1:1080/WebTours/CalSelect.class", 
      "TargetFrame=", 
      "Resource=0", 
      "RecContentType=text/html", 
      "Referer=", 
      "Mode=HTML", 
      LAST);
     web_url("Calendar.class", 
      "URL=http://127.0.0.1:1080/WebTours/Calendar.class", 
      "TargetFrame=", 
      "Resource=0", 
      "RecContentType=text/html", 
      "Referer=", 
      "Mode=HTML", 
      LAST);
     //r_think_time(7);
     lr_output_message(lr_eval_string("The City count is:{City_count}"));
     iTmp = atoi(lr_eval_string("{City_count}")); //城市个数转换成int类型
     //   srand(time(NULL)); 
     iRand = rand() % (iTmp/2+1);   //随机数+1的含义是避免出现随机数是0得到City_0 加1得到的最终随机数=随机数+1;
     sprintf(strTmpA,"{City_%d}", iRand); //获取随机取到的城市编号
     sprintf(strTmpA, lr_eval_string(strTmpA)); //获取城市编号对应的值
     lr_message("The depart city is %s", strTmpA); //打印城市名称 value="Frankfurt">Frankfurt
        position = (char *)strstr(strTmpA, ">");  //定位到">"位置
     lr_save_string(position+1, "DepartCity");  //">"位置+1就是要获取的城市名称
    
     iRand = rand() % (iTmp/2+1);
     sprintf(strTmpB,"{City_%d}", iRand);
     sprintf(strTmpB, lr_eval_string(strTmpB));
     lr_message("The depart city is %s", strTmpB);
        position = (char *)strstr(strTmpB, ">"); 
     lr_save_string(position+1, "ArriveCity");
     while(strcmp(lr_eval_string("{DepartCity}"), lr_eval_string("{ArriveCity}")) == 0)
        {
      iRand = rand() % (iTmp/2) +1;
     
      sprintf(strTmpB,"{City_%d}", iRand);
     
      sprintf(strTmpB, lr_eval_string(strTmpB));
     
      lr_message("The depart city is %s", strTmpB);
     
      position = (char *)strstr(strTmpB, ">"); 
     
      lr_save_string(position+1, "ArriveCity");
     }
     web_reg_save_param("FlightNo",
      "LB=<input type = radio name=outboundFlight value=",
      "RB=>",
      "Ord=ALL",
      LAST);
    //<input type = radio name=outboundFlight value=010;386;04/19/2015 checked >Blue Sky Air 010<
     web_submit_data("reservations.pl", 
      "Action=http://127.0.0.1:1080/WebTours/reservations.pl", 
      "Method=POST", 
      "TargetFrame=", 
      "RecContentType=text/html", 
      "Referer=http://127.0.0.1:1080/WebTours/reservations.pl?page=welcome", 
      "Snapshot=t5.inf", 
      "Mode=HTML", 
      ITEMDATA, 
      "Name=advanceDiscount", "Value=0", ENDITEM, 
      "Name=depart", "Value={DepartCity}", ENDITEM, 
      "Name=departDate", "Value={departDate}", ENDITEM, 
      "Name=arrive", "Value={ArriveCity}", ENDITEM, 
      "Name=returnDate", "Value={arriveDate}", ENDITEM, 
      "Name=numPassengers", "Value=1", ENDITEM, 
      "Name=seatPref", "Value=None", ENDITEM, 
      "Name=seatType", "Value=Coach", ENDITEM, 
      "Name=.cgifields", "Value=roundtrip", ENDITEM, 
      "Name=.cgifields", "Value=seatType", ENDITEM, 
      "Name=.cgifields", "Value=seatPref", ENDITEM, 
      "Name=findFlights.x", "Value=54", ENDITEM, 
      "Name=findFlights.y", "Value=5", ENDITEM, 
      LAST);
    iTmp = atoi(lr_eval_string("{FlightNo_count}"));
     iRand = rand() % iTmp +1;
     //iRand = 1;
     sprintf(strTmpC,"{FlightNo_%d}", iRand);
     sprintf(strTmpC, lr_eval_string(strTmpC));
     lr_message("The Flight No is %s", strTmpC);
        position = (char *)strstr(strTmpC, "checked"); 
     if (position != NULL) {
      sprintf(position -1, "");
     }
     lr_save_string(strTmpC, "FlightNewNo");
     web_submit_data("reservations.pl_2", 
      "Action=http://127.0.0.1:1080/WebTours/reservations.pl", 
      "Method=POST", 
      "TargetFrame=", 
      "RecContentType=text/html", 
      "Referer=http://127.0.0.1:1080/WebTours/reservations.pl", 
      "Snapshot=t6.inf", 
      "Mode=HTML", 
      ITEMDATA, 
      "Name=outboundFlight", "Value={FlightNewNo}", ENDITEM, 
      "Name=numPassengers", "Value=1", ENDITEM, 
      "Name=advanceDiscount", "Value=0", ENDITEM, 
      "Name=seatType", "Value=Coach", ENDITEM, 
      "Name=seatPref", "Value=None", ENDITEM, 
      "Name=reserveFlights.x", "Value=15", ENDITEM, 
      "Name=reserveFlights.y", "Value=2", ENDITEM, 
      LAST);
     //r_think_time(4);
     web_submit_data("reservations.pl_3", 
      "Action=http://127.0.0.1:1080/WebTours/reservations.pl", 
      "Method=POST", 
      "TargetFrame=", 
      "RecContentType=text/html", 
      "Referer=http://127.0.0.1:1080/WebTours/reservations.pl", 
      "Snapshot=t7.inf", 
      "Mode=HTML", 
      ITEMDATA, 
      "Name=firstName", "Value=Demo", ENDITEM, 
      "Name=lastName", "Value=Demo", ENDITEM, 
      "Name=address1", "Value=AAA", ENDITEM, 
      "Name=address2", "Value=", ENDITEM, 
      "Name=pass1", "Value=Demo Demo", ENDITEM, 
      "Name=creditCard", "Value=", ENDITEM, 
      "Name=expDate", "Value=", ENDITEM, 
      "Name=oldCCOption", "Value=", ENDITEM, 
      "Name=numPassengers", "Value=1", ENDITEM, 
      "Name=seatType", "Value=Coach", ENDITEM, 
      "Name=seatPref", "Value=None", ENDITEM, 
      "Name=outboundFlight", "Value={FlightNewNo}", ENDITEM, 
      "Name=advanceDiscount", "Value=0", ENDITEM, 
      "Name=returnFlight", "Value=", ENDITEM, 
      "Name=JSFormSubmit", "Value=off", ENDITEM, 
      "Name=.cgifields", "Value=saveCC", ENDITEM, 
      "Name=buyFlights.x", "Value=37", ENDITEM, 
      "Name=buyFlights.y", "Value=5", ENDITEM, 
      LAST);
     lr_end_transaction("order",LR_AUTO);
     //lr_start_transaction("logout");
     ////r_think_time(13);
     web_url("welcome.pl", 
      "URL=http://127.0.0.1:1080/WebTours/welcome.pl?signOff=1", 
      "TargetFrame=", 
      "Resource=0", 
      "RecContentType=text/html", 
      "Referer=http://127.0.0.1:1080/WebTours/nav.pl?page=menu&in=flights", 
      "Snapshot=t8.inf", 
      "Mode=HTML", 
      LAST);
     //lr_end_transaction("logout",LR_AUTO);
     free(strTmpA);
     free(strTmpB);
     free(strTmpC);
     return 0;
    }
  • 相关阅读:
    sql 临时表循环更新月租金
    董事长审核租金异常处理备份
    datetable导出成Excel
    DateTable导出添加时间段
    button 美化
    JS计算两日期之间相差的月份
    刚做的JS,备份一下(空代表格计算)
    Windows 框架基础开发流程
    照片切换
    Sql datetime类型数据默认1900
  • 原文地址:https://www.cnblogs.com/ssj0723/p/9581713.html
Copyright © 2011-2022 走看看