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

Action()
{
int iRand;
int iTmp;
char *strTmpA;
char *strTmpB;
char *strTmpC;
char *position;
if ((strTmpA = (char *)malloc( * sizeof(char))) == NULL) {
lr_output_message ("Insufficient memory available");
return -;
}
if ((strTmpB = (char *)malloc( * sizeof(char))) == NULL) {
lr_output_message ("Insufficient memory available");
return -;
}
if ((strTmpC = (char *)malloc( * sizeof(char))) == NULL) {
lr_output_message ("Insufficient memory available");
return -;
}
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/+); //随机数+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+, "DepartCity"); //">"位置+1就是要获取的城市名称 iRand = rand() % (iTmp/+);
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+, "ArriveCity");
while(strcmp(lr_eval_string("{DepartCity}"), lr_eval_string("{ArriveCity}")) == )
{
iRand = rand() % (iTmp/) +; 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+, "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 +;
//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 -, "\0");
}
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 ;
}

web类协议脚本-飞机订票系统示例的更多相关文章

  1. 【性能测试】Loadrunner12.55(二)-飞机订票系统-脚本录制

    1.1 飞机订票系统 Loadrunner 12.55不会自动安装飞机订票系统,要自己手动安装. 我们需要下载Web Tools以及一个小插件strawberry https://marketplac ...

  2. loadrunner飞机订票系统从登陆订票退票登出的脚本实现代码调试通过

    在LR自带的飞机订票系统中,完整模拟一个用户从登陆->订票->退票->登出这样一个业务流程,分解每个事务为一个Action: 进入首页->登陆->进入订票页面->选 ...

  3. loadrunner笔记(二):飞机订票系统--客户信息注册

    (一)  几个重要概念说明 集合点:同步虚拟用户,以便同一时间执行任务. 事务:事务是指服务器响应用户请求所用的时间,当然它可以衡量某个操作,如登录所需要的时间,也可以衡量一系列的操作所用的时间,如从 ...

  4. LR自带网站飞机订票系统 启动

    LR自带的网站:飞机订票系统 可是如何启动自带的网站呢?? 一.启动服务:开始-所有程序--HP Software-HP LoadRunner-Samples-Web-Start Web Server ...

  5. Java版飞机订票系统

    关注微信公众号:Worldhello 回复 飞机订票系统 可获得系统源代码并可加群讨论交流 数据结构课程设计题目:          [飞机订票系统]            通过此系统可以实现如下功能 ...

  6. windows API 开发飞机订票系统 图形化界面 (四)

    接下来的是录入航班.修改航班信息功能的实现: //录入航班 BOOL EntryFlight(HWND hEntryDlg){ TCHAR szDiscount[]; TCHAR szFare[],s ...

  7. Loadrunner录制+运行+结果-【飞机订票系统实战】

    目录结构: 一.LoadRunner实现订票系统脚本录制 二.Loadrunner实现订票系统IP欺骗(此处可以不设置) 三.Loadrunner运行录制的脚本 四.Load generator配置 ...

  8. C语言实现-航空订票系统(飞机订票系统)

    开发环境:CodeBlocks 开发语言:C 实现功能:登录,订票,退票 数据存储:文本读写 涉及文件: ​ 相关文件下载: 码云:https://gitee.com/ikaros-521/c_pro ...

  9. windows API 开发飞机订票系统 图形化界面 (二)

    首先,用到的数据结构的定义.以及全局变量和函数的声明如下: // Flight.c : 定义应用程序的入口点. // #include "stdafx.h" //订单 typede ...

随机推荐

  1. [LeetCode] Shifting Letters 漂移字母

    We have a string S of lowercase letters, and an integer array shifts. Call the shift of a letter, th ...

  2. 解决TCPDF中文乱码,PHP

    /* **主要是这个单词控制 stsongstdlight **/ $this->SetFont('stsongstdlight', 'B', 10);

  3. 记录 制作校园网登陆脚本 python编写 附源码

    ‘’‘ 首先我们分析一下 1.需要本机的IP 使用 socket 获取 2.需要向服务器提交的数据 构造请求数据 并分析数据可替换 3.检测登陆成功 检测登陆是否成功 ’‘’ 获取IP 这样会返回 本 ...

  4. .NET Core多平台开发体验[3]: Linux (Windows Linux子系统)

    如果想体验Linux环境下开发和运行.NET Core应用,我们有多种选择.一种就是在一台物理机上安装原生的Linux,我们可以根据自身的喜好选择某种Linux Distribution,目前来说像R ...

  5. 基于Java的ArrayList和LinkedList的实现与总结

    一.定义MyList接口,包含列表常见方法: import java.util.Iterator; /** * 线性表(列表)的接口定义 */ public interface MyList<T ...

  6. 【从零开始搭建自己的.NET Core Api框架】(六)泛型仓储的作用

    系列目录 一.  创建项目并集成swagger 1.1 创建 1.2 完善 二. 搭建项目整体架构 三. 集成轻量级ORM框架——SqlSugar 3.1 搭建环境 3.2 实战篇:利用SqlSuga ...

  7. [Swift]LeetCode539. 最小时间差 | Minimum Time Difference

    Given a list of 24-hour clock time points in "Hour:Minutes" format, find the minimum minut ...

  8. [Swift]LeetCode781. 森林中的兔子 | Rabbits in Forest

    In a forest, each rabbit has some color. Some subset of rabbits (possibly all of them) tell you how ...

  9. Eclipse工具:常用快捷键记录

    Eclipse快捷键:           按键操作  按键作用   输入sysout再按下Ctrl+Space  System.out.println()   Ctrl+1  当某行出错时时,跳出帮 ...

  10. idea设置代码颜色主题(同Sublime Text 3的代码颜色一样)

    1.下载主题的网址:http://color-themes.com,主题种类多,总有适合你的主题.在这个网址下载的主题是jar文件,直接导入,如下图file->import  Setting,找 ...