当前位置: 首页 > 编程日记 > 正文

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">Frankfurtposition = (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, "\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 0;
}

转载于:https://www.cnblogs.com/ssj0723/p/9581713.html

相关文章:

ACCEPT()和ACCEPT4()

ACCEPT章节&#xff1a;Linux 程序员手册 (2) 更新&#xff1a;2010-09-10到 易美翻译 翻译名字accept - 通过套接口接受一个连接 概要 #include Esys/types.h> /* 参看 “注意小节” */ #include Esys/socket.h>int accept(int sockfd, struct sockaddr *addr, socklen…

没有提示_华为手机发出莫名的提示音,打开什么也没有?原来是它们在作怪

不知道你们有没有遇到过这样的情况&#xff0c;在使用手机的过程中会出现一个非常奇怪的现象&#xff1a;当你听到手机发出声音&#xff0c;打开手机却发现什么通知也没有&#xff1f;这一度让我感到很困扰&#xff0c;本着“打破砂锅问到底”的精神&#xff0c;终于让我找到了…

近段时间佛我就偶尔无

jo建瓯市金佛玩手机欧力紧凑度 我株型紧凑我阿九倨傲四局李嘉诚转载于:https://juejin.im/post/5b8e5263e51d4538e2278c9b

php内核探索方法与资源

PHP内核探索 TIPI深入理解PHP内核 风雪之隅PHP源码分析 《php扩展开发及内核应用》 百度XLQ Gods blog codinglabsPHP内核探索&#xff1a;从SAPI接口开始PHP内核探索&#xff1a;一次请求的开始与结束PHP内核探索&#xff1a;一次请求生命周期PHP内核探索&#xff1a;单进程SA…

feign调用走不走网关全局拦截_feign服务端出异常客户端处理的方法

在使用feign进行远程方法调用时&#xff0c;如果远程服务端方法出现异常&#xff0c;客户端有时需要捕获&#xff0c;并且把异常信息返回给前端&#xff0c;而如果在开启熔断之后&#xff0c;这个异常会被消化&#xff0c;所以说&#xff0c;如果希望拿到服务端异常&#xff0c…

配置Cesium编译环境

1、安装node.js https://nodejs.org/en/ 2、配置node.js 在node.js安装目录下新建node_global、node_cache两个文件夹&#xff0c;并把node_global添加到环境变量 eg.D:\app\nodejs npm config set prefix D:\app\nodejs\node_global npm config set cache D:\app\nodejs\node_…

迷你世界电锯机器人_迷你世界:三分钟制作超简单飞翔石像机器人报道!

更多游戏资讯&#xff0c;请点击上方蓝字查询&#xff01;哈喽&#xff0c;大家好&#xff0c;还记得我之前分享的超简单的石像机器人吗&#xff1f;不记得了吗&#xff1f;我再帮助大家回忆回忆&#xff0c;之前研游酱分享的石像机器人总共是分两篇文章&#xff0c;一个是不会…

J2EE 第二阶段项目之编写代码(四)

我的任务就是项目统计。 1 效益统计 1 教育效益统计表 &#xff08;教育效益统计表&#xff0c;增,改&#xff0c;查看&#xff0c;查&#xff09; 2 农牧林效益统计表 &#xff08;农牧林效益统计表&#xff0c;增&#xff0c;改&#xff0c;查看&#xff0c;查&#xff09; 3…

PHP安装扩展mcrypt以及相关依赖项 【PHP安装PECL扩展的方法】

一&#xff1a;Mcrypt简介 Mcrypt是PHP的一个扩展&#xff0c;完成了常用加密算法的封装。其实该扩展是对mcrypt标准类库的封装&#xff0c;mcrypt完成了相当多的常用加密算法&#xff0c;如DES, TripleDES, Blowfish (default), 3-WAY, SAFER-SK64, SAFER-SK128, TWOFISH, TEA…

Javascript到PHP加密通讯的简单实现

互联网上大多数网站&#xff0c;用户的数据都是以明文形式直接提交到后端CGI&#xff0c;服务器之间的访问也大都是明文传输&#xff0c;这样可被一些别有用心之人通过一些手段监听到。对安全性要求较高的网站&#xff0c;比如银行和大型企业等都会使用HTTPS对通讯过程进行加密…

MYSQL添加新用户 MYSQL为用户创建数据库 MYSQL为新用户分配权限

2019独角兽企业重金招聘Python工程师标准>>> 1.新建用户 //登录MYSQL >mysql -u root -p >密码 //创建用户 mysql> insert into mysql.user&#xff08;Host,User,Password&#xff09; values&#xff08;‘localhost’&#xff0c;jeecn’&#xff0c;pa…

uml具有多种视图_UML建模与架构文档化

UML(统一建模语言) 是用元模型描述的&#xff0c;元模型是4层元模型体系结构模式中的一层。此模式的其他层次分别是元-元模型层、模型层和用户对象层。在原模型层&#xff0c;UML元模型 又被分解为三个子逻辑包&#xff1a;基础包(核心、扩展机制和数据模型)、行为元素包(描述模…

insert into与insert ignore以及replace into的区别

insert ignore表示&#xff0c;如果表中已经存在相同的记录&#xff0c;则忽略当前新数据&#xff1b; INSERT INTO有无数据都插入&#xff0c;如果主键则不插入; REPLACE INTO 如果是主键插入则会替换以前的数据; 例 1.insert语句一次可以插入多组值&#xff0c;每组值用一对…

德国SNS交友/视频网站Poppen.de的技术架构分享

Poppen.de是一个德国的 交友/ 聊天/ 视频 的SNS网站, 部分内容NSFW&#xff0c;网站采用了很多我们熟悉的技术&#xff0c;像Nginx &#xff0c;MySQL&#xff0c;CouchDB&#xff0c;Erlang&#xff0c;Memcached的&#xff0c;RabbitMQ(消息服务器)&#xff0c;采用了Graphit…

对数函数定义域和值域_呆哥数学每日一题 —— 复合函数值域

如果想要获取往期每日一题电子版&#xff0c;可以加我微信&#xff1a;daigemath366&#xff0c;备注&#xff1a;知乎 每日一题呆哥解析&#xff1a;这是一个函数和复合函数的综合问题首先我们先把原函数的值域求出来先直接求导&#xff1a;导数不容易判断单调性&#xff0c;我…

一些常用工具地址,随时更新中~

2019独角兽企业重金招聘Python工程师标准>>> 一些常用工具地址的备份&#xff1a; 一款比较全的先到化界面编辑器Neditor&#xff1a;https://gitee.com/notadd/neditor 前端ui组件库&#xff0c;类似element ui。iView&#xff1a;https://www.iviewui.com &#…

UNIX环境编程

linux函数分析查询工具1.优先推荐linux 中man命令2.一个不错的中文Linux手册&#xff1a;http://cpp.ezbty.org/manpage3.在线查英文Man手册&#xff1a;http://www.kernel.org/doc/man-pages/http://man7.org/linux/man-pages/dir_all_alphabetic.htmlhttp://linux.about.com/…

WCF优化的几个常规思路

前几天用WCF做项目时发现了一个效率问题&#xff0c;由于系统对效率要求较高&#xff0c;困扰了很长时间终于将问题解决了&#xff0c;写下来为以后的兄弟们参考&#xff0c;第一次写博客有不准确的地方还望同行们多喷多指点&#xff0c;先行谢过啦... 问题场景是这样的&#x…

使复选框选中_勾选复选框单元格变色,自动计数,在Excel中是如何实现的?

Excel中&#xff0c;我们经常会使用复选框来打勾打叉&#xff0c;这是复选框最基本的功能&#xff0c;相信很多小伙伴都会&#xff0c;但今天我跟大家分享的是复选框的其他操作技巧&#xff0c;勾选复选框变色&#xff0c;统计人数。下图中&#xff0c;我们要利用复选框是否打钩…

[短文速读] 重载有暗坑,JVM是如何执行方法的

前言 这将是一个系列文章。原因是自己写了很多文章&#xff0c;也看了很多文章。从最开始的仅仅充当学习笔记&#xff0c;到现在认认真真去写文章去分享。中间发现了很多事情&#xff0c;其中最大发现是&#xff1a;收藏不看&#xff01;总是想着先收藏以后有时间再看&#xff…

一笔画问题【数据结构-图论】

回家路上听到2个人在说&#xff1a;田字怎么一笔写成&#xff0c;并且笔划不重复。 田 我回家想了许久&#xff0c;觉得无论如何走正常的途径肯定是不行的&#xff0c;投机取巧脑筋急转弯的我不讨论。 那么是否可以找到数学定理&#xff1f; 其实就是欧拉七桥问题&#xff1a;1…

解析并符号 读取dll_Spring IOC容器之XmlBeanFactory启动流程分析和源码解析

一. 前言Spring容器主要分为两类BeanFactory和ApplicationContext,后者是基于前者的功能扩展&#xff0c;也就是一个基础容器和一个高级容器的区别。本篇就以BeanFactory基础容器接口的默认实现类XmlBeanFactory启动流程分析来入门Spring源码的学习。二. 概念要点1. 概念定义Be…

安装多个gcc

删除gcc #yum remove gcc 安装最新的 #yum install gcc 查找gcc源 可先通过“yum list compat-gcc*”查看版本&#xff0c;然后再利用“yum install compat-gccXXX”安装 #yum list compat-gcc* #sudo yum install compat-gcc-34.i686 查看gcc版本 #gcc -v #gcc34 -v参考&…

JAVA - HashMap和HashTable

1. HashMap 1) hashmap的数据结构 Hashmap本质就是一个数组&#xff0c;只是当key值重复时&#xff0c;使用链表的方式来存储重复的key值&#xff08;拉链法&#xff09;&#xff0c;注意&#xff1a;链表中存放的仍然是key值。如下图示&#xff1a; 当我们往hashmap中put元素…

empress和queen区别_queen与empress

(1)「queen」和「empress」不仅可以用来指称「king」和「emperor」的妻子&#xff0c;也能指代握有正式权力的女性君主。(2) 英国的君主(queen或king)之所以曾经有过empress或emperor的头衔&#xff0c;是因为英国曾统治过印度次大陆, 他们曾是印度的empress或emperor。如今&am…

在UIWindow上加类似于“回到顶部”的按钮

在公司上个版本的开发中遇到了一个UI布局的小问题&#xff1a; 某个页面需要增加一个分享按钮&#xff0c;但是该页面是二级页面&#xff0c;导航栏右边也已经放置了2个button。 起初和老大谈论这个问题的时候想到的方法是导航栏右边加三个button得了~但是一回想&#xff0c;这…

修改mysql 默认字符集 , 默认引擎

cd /var/lib/mysql/gamell vim db.optdefault-character-setutf8default-collationutf8_general_ciwq service mysqld restart或者service mysqld reload默认字符集修改完毕vim /etc/my.cnf[mysqld]datadir/var/lib/mysqlsocket/var/lib/mysql/mysql.sockusermysqldefault-stor…

bzoj2724: [Violet 6]蒲公英(分块)

传送门 md调了一个晚上最后发现竟然是空间开小了……明明算出来够的…… 讲真其实我以前不太瞧得起分块&#xff0c;觉得这种基于暴力的数据结构一点美感都没有。然而今天做了这道分块的题才发现分块的暴力之美&#xff08;如果我空间没有开小就更美了&#xff09; 我们先将整个…

Linux0.01内核根目录Makefile注释

# # Makefile for linux. # If you dont have -mstring-insns in your gcc (and nobody but me has :-) # remove them from the CFLAGS defines. ## #8086汇编编译器和连接器. -0生成8086目标程序;-a生成与gas和gld部分兼容的代码 # AS86 as -0 -a CC86 cc -0 LD86 ld -0# #G…

快速滚动_方老师教滚动快速作文

五年级第一单元作文集阴沉天空中有一小束照着你的阳光。亲爱的孩子&#xff0c;让时间在知识的枝条上、智慧的绿叶上、成熟的果实上留下它勤奋的印痕&#xff01;罗婉汀作文集自律且努力&#xff0c;别让生活太安逸。亲爱的孩子&#xff0c;耕耘者最信得过自己的汗水&#xff0…