Loadrunner windows sockets性能测试脚本开发视频完成
来源:互联网 发布:游戏优化器 编辑:程序博客网 时间:2024/05/01 04:08
转自云层http://www.51testing.com/index.php?uid-104-action-viewspace-itemid-212043
由于回到深圳事情颇多,而且又有各种活动,今天花了点时间终于把拖欠多时的视频做出来了。
这次的工程很大,整个视频长达54分钟,估计看的人都要睡着了,不过我写的时候可是很辛苦的,所以要大家耐心的看调试和分析过程了。
这个项目是使用的loadrunner8.0自带的flights项目制作的,脚本可以在LR9上运行,但环境无法迁移到其他平台。
土豆这次就不更新了,太大了。
下载地址:
ftp://user1:user1@www.atstudy.com/cloud/sockets.swf
关键技术:
sockets协议的录制,请求的分析,如何做参数化,如何做关联
脚本:
由于在录制视频的时候不小心写错了几个东西导致有些订单生成和用户信息有问题了,这里再说明一下,视频中的有几个小bug
1.在插入订单的时候错误的把订单号和航班号写反了,导致订单一直插不进去,郁闷啊
2.在插入用户时,忘了把关联到得新用户编号写回来,导致用户id一直是261
3.在查询用户是否存在时,忘了参数化当前用户名,导致该用户一直都是存在的,不会触发新建用户id逻辑
---------------------------华丽的分割线,下面是主代码,data.ws文件和完整脚本看附件-------------------------
splitchartoparamarr(char *x,char *y,char *paramarrname)
//该函数的作用是将输入的字符串x,通过y符号分割,保存到paramarrname参数数组中
{
extern char * strtok(char * string, const char * delimiters );
char charstring[1000],separators[100],paramname[110];
//定义输入字符串,字符串长度为1000,分隔符长度为100,参数元素名长度110
char * token;
int i=0;//初始化计数器
char paramcount[10],paramarrcount[110];
//定义生成参数数组的编号及参数名
strcpy(charstring,x);
strcpy(separators,y);
token = (char *)strtok(charstring, separators);
// Get the first token
if (!token) {
lr_output_message ("No tokens found in string!");
return( -1 );
}
while (token != NULL ) { // While valid tokens are returned
//lr_output_message ("%s", token );//输入分割值
i++;
sprintf(paramname,"%s_%d",paramarrname,i);
//lr_output_message ("%s", paramname );//输出参数名
lr_save_string(token,paramname);
token = (char *)strtok(NULL, separators); // Get the next token
}
sprintf(paramarrcount,"%s_count",paramarrname);
itoa(i,paramcount,10);
lr_save_string(paramcount,paramarrcount);
}
/*********************************************************************
* Created by Mercury Interactive Windows Sockets Recorder
*
* Created on: Wed Apr 07 13:23:40
*********************************************************************/
#include "lrs.h"
vuser_init()
{
int randno;
char flystring[100];
lrs_startup(257);
lrs_create_socket("socket0", "TCP", "RemoteHost=computer:3456", LrsLastArg);
lrs_send("socket0", "buf0", LrsLastArg);
lrs_receive("socket0", "buf1", LrsLastArg);
lr_think_time(11);
lrs_send("socket0", "buf2", LrsLastArg);
lrs_receive("socket0", "buf3", LrsLastArg);
lr_think_time(14);
lrs_send("socket0", "buf4", LrsLastArg);
lrs_receive("socket0", "buf5", LrsLastArg);
lrs_save_searched_string ("socket0", LRS_LAST_RECEIVED, "param1", "LB/BIN=##", "RB/BIN=##", 1,0, -1);
splitchartoparamarr(lr_eval_string("<param1>"),"#","flyno");
//该函数的作用是将输入的字符串x,通过y符号分割,保存到paramarrname参数数组中
randno=rand()%atoi(lr_eval_string("<flyno_count>"))+1;
sprintf(flystring,"<flyno_%d>",randno);
lr_save_var(lr_eval_string(flystring),4,0,"flysno");
lr_think_time(23);
lrs_send("socket0", "buf6", LrsLastArg);
lrs_receive("socket0", "buf7", LrsLastArg);
lrs_send("socket0", "buf8", LrsLastArg);
lrs_receive("socket0", "buf9", LrsLastArg);
lrs_save_searched_string ("socket0", LRS_LAST_RECEIVED, "orderid", "LB/BIN=##", "RB/BIN=##", 1,0, -1);
lrs_send("socket0", "buf10", LrsLastArg);
lrs_receive("socket0", "buf11", LrsLastArg);
lrs_save_searched_string ("socket0", LRS_LAST_RECEIVED, "userid", "LB/BIN=##", "RB/BIN=##", 1,0, -1);
if(atoi(lr_eval_string("<userid>"))==-1)
{
lrs_send("socket0", "buf12", LrsLastArg);
lrs_receive("socket0", "buf13", LrsLastArg);
lrs_send("socket0", "buf14", LrsLastArg);
lrs_receive("socket0", "buf15", LrsLastArg);
lrs_save_searched_string ("socket0", LRS_LAST_RECEIVED, "userid", "LB/BIN=##", "RB/BIN=##", 1,0, -1);
lrs_send("socket0", "buf16", LrsLastArg);
lrs_receive("socket0", "buf17", LrsLastArg);
}
lrs_send("socket0", "buf18", LrsLastArg);
lrs_receive("socket0", "buf19", LrsLastArg);
lrs_send("socket0", "buf20", LrsLastArg);
lrs_receive("socket0", "buf21", LrsLastArg);
lrs_send("socket0", "buf22", LrsLastArg);
lrs_receive("socket0", "buf23", LrsLastArg);
return 0;
}
- Loadrunner windows sockets性能测试脚本开发视频完成
- LoadRunner 性能测试脚本
- LoadRunner 性能测试脚本
- LoadRunner 性能测试脚本-函数
- LoadRunner 性能测试脚本
- loadrunner性能测试脚本2
- LoadRunner JAVA Vuser协议开发性能测试脚本 1
- LoadRunner Windows Sockets 牛刀小试
- Flex4 LoadRunner 性能测试视频发布
- LoadRunner长连接性能测试脚本
- 利用LoadRunner编写socket性能测试脚本
- Loadrunner编写socket性能测试脚本简述
- loadrunner性能测试脚本设计常用方法
- 利用LoadRunner编写socket性能测试脚本
- loadrunner性能测试_第一步 录制脚本
- LoadRunner性能脚本开发实战训练
- LoadRunner性能测试windows资源计…
- 测试Windows Sockets协议
- c++基础---C++之模板
- Python扩展方法及工具比较
- 交换数据流(ADS)与IIS的前世与今生
- 纹理(讲得比较详细的文章)
- ObjC学习9-Foundation框架之数字、字符串和集合
- Loadrunner windows sockets性能测试脚本开发视频完成
- 二分匹配
- HTML和XHTML
- Ruby简介 完全面对象 脚本 从人的角度编程(强大反射)
- 设置MSQL自增
- NTFS中的streams和ADS
- Eclipse下搭建struts、spring、hibernate开发环境 搭建环境
- 线程和进程的通讯方式
- 计算信息增益 Java