以下是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. Textarea设置自动高度

    $.fn.extend({ autoHeight: function() { return this.each(function() { var $this = jQuery(this); if(!$ ...

  2. 网站 Cookie only 唯一 防止被截获

    void Page_Load(object sender, EventArgs e) { // Create a new HttpCookie. HttpCookie myHttpCookie = n ...

  3. c++标准---for循环新用法

    贪吃蛇游戏的c++版本,从GitHub上clone下来的,在startinterface.cpp文件中有如下代码: void   StartInterface::PrintText() { for ( ...

  4. docker kubernetes Swarm容器编排k8s CICD部署

    1docker版本 docker 17.09 https://docs.docker.com/ appledeAir:~ apple$ docker version Client: Docker En ...

  5. Linux系统下如何运行.sh文件

    在Linux系统下运行.sh文件有两种方法,比如我在root目录下有个datelog.sh文件 第一种(这种办法需要用chmod使得文件具备执行条件(x): chmod u+x datelog.sh) ...

  6. xpath使用方法

    一.选取节点常用的路劲表达式: 表达式 描述 实例   nodename 选取nodename节点的所有子节点 xpath(‘//div’) 选取了div节点的所有子节点 / 从根节点选取 xpath ...

  7. Linux服务器之间进行文件目录映射/挂载(总结)

    Linux服务器之间进行文件目录映射/挂载(总结) 需要实现的功能为:将192.168.10.10服务器下的 /home/要映射的目录/ ,映射为192.168.10.90服务器下的 /home/被映 ...

  8. HBuilder git合作-从Git Hub Clone项目

    1.Clone项目 打开”Git Respository"视图,选“Clone a Git Respository" 2.为了能正确pull项目,所有队员都必须做以下配置(其始只是 ...

  9. idea maven cannot resolve symbol http报错问题解决

    学习SpringMVC的过程中,在idea中使用maven管理依赖.在class中使用 javax.servlet.http.HttpServletRequest的时候,报错:cannot resol ...

  10. [转]Setting Keystone v3 domains

    http://www.florentflament.com/blog/setting-keystone-v3-domains.html The Openstack Identity v3 API, p ...