以下是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. prometheus+grafana 监控生产环境机器的系统信息、redis、mongodb以及jmx

    介绍: 为了更好的对生产环境的一些中间件和操作系统的运行情况进行可视化的展示,近期了解了下prometheus加上grafana来实现这种效果,由于prometheus是新出来的开源项目,所以,监控的 ...

  2. Java Fileupload

    fileupload FileUpload 是 Apache commons下面的一个子项目,用来实现Java环境下面的文件上传功能,与常见的SmartUpload齐名. 组件 1.FileUpLoa ...

  3. String类,StringBuffer类转字符数组

    String不可变类型和StringBuffer可变类型 String类和StringBuffer类都是字符串表示类,区别在于String对象引用变量是不可变的,而StringBuffer类对象引用变 ...

  4. Reactjs组件中的方法为什么绑定this?

    前言:Reactjs中的定义的方法其实是基于实例的原型方法:es6默认严格模式   问题:在Reactjs组件中写入以下代码,那么执行结果会是什么呢? ··· 结果是这样的: 对的,你没看错,不是do ...

  5. 实现CSS隐藏滚动条并可以滚动内容

    隐藏滚动条的同时还需要支持滚动,我们经常在前端开发中遇到这种情况,最容易想到的是加一个iscroll插件,但其实现在CSS也可以实现这个功能,我已经在很多地方使用了,下面一起看看这三种方法. 方法1: ...

  6. 【安富莱专题教程第2期】uC/Probe简易使用说明,含MDK和IAR,支持F103,F407和F429开发板

    说明:1. 在uCOS工程调试时,这个软件还是非常给力的,方便查看各种信息,可以认为是MDK或者IAR调试功能的图形化版本,使用JLINK连接可以随时连接查看,无需目标端代码.2. 当前教程中,我们使 ...

  7. 利用redis + lua解决抢红包高并发的问题

    抢红包的需求分析 抢红包的场景有点像秒杀,但是要比秒杀简单点.因为秒杀通常要和库存相关.而抢红包则可以允许有些红包没有被抢到,因为发红包的人不会有损失,没抢完的钱再退回给发红包的人即可.另外像小米这样 ...

  8. 吴恩达机器学习笔记53-高斯分布的算法(Algorithm of Gaussian Distribution)

    如何应用高斯分布开发异常检测算法呢? 异常检测算法: 对于给定的数据集

  9. Web前端-JavaScript基础教程上

    Web前端-JavaScript基础教程 将放入菜单栏中,便于阅读! JavaScript是web前端开发的编程语言,大多数网站都使用到了JavaScript,所以我们要进行学习,JavaScript ...

  10. [Swift]LeetCode748. 最短完整词 | Shortest Completing Word

    Find the minimum length word from a given dictionary words, which has all the letters from the strin ...