web类协议脚本-飞机订票系统示例
以下是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类协议脚本-飞机订票系统示例的更多相关文章
- 【性能测试】Loadrunner12.55(二)-飞机订票系统-脚本录制
1.1 飞机订票系统 Loadrunner 12.55不会自动安装飞机订票系统,要自己手动安装. 我们需要下载Web Tools以及一个小插件strawberry https://marketplac ...
- loadrunner飞机订票系统从登陆订票退票登出的脚本实现代码调试通过
在LR自带的飞机订票系统中,完整模拟一个用户从登陆->订票->退票->登出这样一个业务流程,分解每个事务为一个Action: 进入首页->登陆->进入订票页面->选 ...
- loadrunner笔记(二):飞机订票系统--客户信息注册
(一) 几个重要概念说明 集合点:同步虚拟用户,以便同一时间执行任务. 事务:事务是指服务器响应用户请求所用的时间,当然它可以衡量某个操作,如登录所需要的时间,也可以衡量一系列的操作所用的时间,如从 ...
- LR自带网站飞机订票系统 启动
LR自带的网站:飞机订票系统 可是如何启动自带的网站呢?? 一.启动服务:开始-所有程序--HP Software-HP LoadRunner-Samples-Web-Start Web Server ...
- Java版飞机订票系统
关注微信公众号:Worldhello 回复 飞机订票系统 可获得系统源代码并可加群讨论交流 数据结构课程设计题目: [飞机订票系统] 通过此系统可以实现如下功能 ...
- windows API 开发飞机订票系统 图形化界面 (四)
接下来的是录入航班.修改航班信息功能的实现: //录入航班 BOOL EntryFlight(HWND hEntryDlg){ TCHAR szDiscount[]; TCHAR szFare[],s ...
- Loadrunner录制+运行+结果-【飞机订票系统实战】
目录结构: 一.LoadRunner实现订票系统脚本录制 二.Loadrunner实现订票系统IP欺骗(此处可以不设置) 三.Loadrunner运行录制的脚本 四.Load generator配置 ...
- C语言实现-航空订票系统(飞机订票系统)
开发环境:CodeBlocks 开发语言:C 实现功能:登录,订票,退票 数据存储:文本读写 涉及文件: 相关文件下载: 码云:https://gitee.com/ikaros-521/c_pro ...
- windows API 开发飞机订票系统 图形化界面 (二)
首先,用到的数据结构的定义.以及全局变量和函数的声明如下: // Flight.c : 定义应用程序的入口点. // #include "stdafx.h" //订单 typede ...
随机推荐
- angular.toJson()
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- Linux系统如何添加IP别名
IP别名可以在一块物理网卡上绑定多个IP地址,这样就能够在使用单一网卡的同一个服务器上运行多个基于IP的虚拟主机,简单来说,IP别名就是一张物理网卡上配置多个IP,实现类似子接口之类的功能. 那么IP ...
- sublime No packages available for installation
package control user-setting 中添加: "channels": [ "C:\\channel_v3.json" ], channel ...
- mvc根据绝对路径下载文件
首先页面需要一个a标签直接指向下载文件的Action并传值:图片地址,以及图片名称(记住要带后缀名的). 然后是Action里面的代码. SiteHelper.DownloadFile(fileUrl ...
- Ajax验证用户名是否被注册
Ajax验证用户名是否被注册 var xmlHttp; function createXMLHttpRequest(){ // 创建XMLHttp请求对象 if(window.ActiveXObjec ...
- 一种简单的 rem 单位基准设置
1rem 换算成的像素值等于 html 元素的 font-size 值 如果 设置 html 的 font-size 为 100px, 那么设计稿的 像素转换成 rem 只需要除以 100 即可. f ...
- linux下SS 网络命令详解
ss命令用来显示处于活动状态的套接字信息. ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容. 但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比n ...
- C#等同于正则表达式的写法
不用写正则表达式,用C#自带的方法 用char 自带的函数实现 /// <summary> /// 只能由数字和大小写字母组成 /// </summary> /// <p ...
- ubuntu 修改系统时间无效
用root用户修改服务器时间无效:使用hwclock -w也不行 解决方法: 需要取消自动从互联网同步时间才可以的 timedatectl set-ntp 0 上面的命令可以关闭自动同步,然后你再设置 ...
- 第二次Srum冲刺
一.项目简介 1.项目名称:云医院智能管理系统 2.项目介绍:该项目涵盖了目前医院里的一些基本需求,由于时间和技术有限,先暂时列出如下图所示的一些要实现的功能,关于实现的过程,还需在后面的学习当中不断 ...