Loadrunner万字整理资料【乐搏TestPRO】

一、脚本问题
问题1.1、无法弹出IE浏览器或者录制中出现0事件
原因:一般是由于电脑安装多个浏览器导致
解决:修改IE选项设置,去掉勾选“启用第三方浏览器扩展”

问题1.2、Windows 2003无法录制IE6/7
原因:可能是Windows server 2003默认对IE加载DEP(数据执行保护)特性,而Vugen.exe刚好跟DEP冲突所导致
解决:修改我的电脑→属性→高级→性能(设置)→数据执行保护→添加→将Loadrunner安装目录bin下的Vugen.exe添加进去→确定。重启Loadrunner

问题1.3、录制正常但是脚本中无数据显示
原因:有可能是协议或者是捕获数据的方式导致
解决:在录制中打开Options(选项)→Port Mapping(端口映射)→选择捕获数据的方式或者选择识别协议内容

问题1.4、录制时出现Visual Studio调试器
原因:Windows对数据的保护设置
解决:打开“我的电脑”→属性→高级→性能-设置→数据执行保护→勾选“除所选之外…”→“添加”选择“iexplore.exe”即可

问题1.5、录制时修改参数保存的方式
原因:.net协议录制时,参数默认保存为(Binary)格式
解决:录制时进入→Options→http://Microsoft.net→Recording→Serialzation中将Serialzation format的Value值更改为XML格式

问题1.6、脚本回放正常,未通过
原因:可能是缺少包头。默认情况下是不录制HTTP Header(请求包头),如果有些数据存放在Header中,导致脚本无法正常通过
解决:

利用抓包工具(如HttpWatch),进行抓包分析,找到报头,在请求前添加该报头。如:web_add_auto_header(“x-requested-with”, “XMLHttpRequest”)
查找缺少的报头名,添加包头。在录制中打开Options(选项)→Advanced(高级)→Headers(标题)→Recourd headers in list→添加包头
问题1.7、脚本回放无法正常通过
原因:录制时请求方式
解决:在录制中打开Options(选项)→Recording(高级)→URL Advanced→选择Use web_custom_request only方式录制

问题1.8、脚本出现26601错误
原因:缺少压缩包头
解决:web_add_auto_header(“Accept_Encoding”,“gzip,deflate”);

二、其他问题
问题2.1、Java执行场景时并发数上不去
原因:Spring框架重定向问题
解决:将修改为scope=”prototype”

问题2.2、在场景设置中监控不到服务器
原因:服务没有开启
解决:打开服务→开启相关服务(首先检查Remote Registry服务,然后在开启computer browser,如果computer browser无法开启,检查server、workstation服务)

问题2.3、在生成结果中采集的数据不一致
原因:由于采样的时间
在摘要中,时间是根据整个场景执行的过程进行采样
在平均事务响应时间主要是按照Loadrunner分析出来的采样频率来获取

解决:可通过“set granularity”来修改平均事务响应时间的采样频率,设为场景执行时间,结果会一致。

问题2.4、SilverLight中脚本回放错误
原因:缺少SOAPAtion包头
解决:在录制中打开Options(选项)→Advanced(高级)→Headers(标题)→Recourd headers in list→添加包头

问题2.5、http://microsoft.net协议中无法查看数据文件
原因:默认次方式离职脚本中生成的数据文件类型为Binary,需修改为XML格式
解决:在录制中打开Options(选项)→http://Microsoft.net→Recording→serializatioformat改为XML即可

三、脚本优化
3.1、检查点
函数:web_reg_find、web_image_check和web_find

web_reg_find(文本检查点)函数的使用方法和技巧
web_reg_find(

“Search=查找的范围”,

“Save Count=记录缓冲出现的次数”,

“Test=查找的参数”,

LAST);

If (atoi(lr_eval_string(“{N_count}”)) > 0 )

用法:在缓冲中查找,所以要放在查找内容之前

web_image_check(图片检查点)函数的使用方法和技巧
web_image_check(

“函数标题”,

“ALT\SRC=图片的全路径”,

LAST);

用法:在HTML中使用,要放在查找内容之前,必须勾选run-time→Perferences→Enable Image and Test Check

3.2、关联
函数:web_reg_save_param、web_reg_save_param_ex

web_reg_save_param(_ex)函数的使用方法和技巧
web_reg_save_param(_ex)(

“关联函数名”,

“LB=左边界”,

“RB=右边界”,

“Ord(Ordinal)= 出现的次数”,

“Search = 查找的范围”,

“SaveOffset = 偏移的量”,

“SaveLen = 保存的长度”,

“LAST”);

技巧:在关联参数中随机选值;
方法一:定义变量,使用LR_paramarr_random函数取值,如下:
Char *param;

Param=lr_paramarr_random(“关联函数名”);

Lr_save_string(“Param”,“新参数名”);

方法二:定义随机参数,在Ord(Ordinal)中利用参数随机参数取值,如下:
在参数列表中定义参数random_num

将Ord(Ordinal)={random_num}

3.3、参数
Parameter List界面介绍

File format中Column选项如下:
Comma:以逗号分隔
Tab:以Tab分隔
Space:以空格分隔
Select next row中选项如下:
Sequential:顺序取值
Random:随即取值
Unique:唯一取值
Update value on中选项如下:
Each iteration:每次迭代更新
Each occurrence:每次取值更新
Once:只更新一次
When out of values中选项如下:
Abort Vuser:参数超出后退出
Continue in a cyclic value:参数超出后循环
Continue with last value:参数超出后使用最后一个值
技巧1:如果所需参数中存在空格(逗号),需要在File format中选择以Comma(Tab)分隔,否则参数不可用。或者在参数中的将逗号用“”
技巧2:在Date/Time中可以设置自增自减。在offset标签中勾选Offset parameter
自增:勾选Working days onl

自减:勾选prior to current

技巧3:如果参数过多时,可以将多个参数放到一个参数表中。如下图:

3.4、思考时间
lr_think_time(3);

技巧:如果模拟用户的操作可适当添加思考时间。
如果想获取TPS的值,则不能加思考时间和集合点。

3.5、小技巧
3.5.1、 LR中浮点数相加
double atof( const char *string);//申明

float UpPrice1;

float UpPrice2;

float i=0.1;

char * UpPrice3=(char*)calloc(100,sizeof(char));

lr_save_string( lr_eval_string("{CorrelationParameter_2}"),

“UpPrice1” );

//lr_error_message(“打印结果%s”, lr_eval_string("{UpPrice1}"));

UpPrice2=atof(lr_eval_string ("{UpPrice1}"))+i;

atof( lr_eval_string("{UpPrice1}") );

sprintf( UpPrice3,"%.2f",UpPrice2 );

lr_save_string( UpPrice3,“UpPrice” );

lr_error_message(“打印结果:%s”, lr_eval_string("{UpPrice}"));

使用参数取值用{UpPrice}

3.5.2、 URL编码与解码
URL=http://www.baidu.com/s?wd=%E6%B5%B7%E6%B7"中要对%E6%B5%B7%E6%B7进行参数化,但是由“值”进行URL编码过来的,无法直接用中文参数化,由于LR提供了方法,现在要将中文进行URL编码。

解决方法如下:

URL编码:

lr_convert_string_encoding(“值”,LR_ENC_SYSTEM_LOCALE, LR_ENC_UTF8 , “UnicodeString”);

lr_save_string (lr_eval_string("{UnicodeString}"),“nURLencoder” );

web_convert_param(“nURLencoder”,

“SourceEncoding=PLAIN”,

“TargetEncoding=URL”,

LAST );

lr_output_message(“Url编码 = %s”,lr_eval_string("{nURLencoder}"));

URL解码:

lr_save_string (lr_eval_string("{nURLencoder}"),“URLencoder” );

web_convert_param(“URLencoder”,

“SourceEncoding=URL”,

“TargetEncoding=PLAIN”,

LAST );

lr_convert_string_encoding(lr_eval_string("{URLencoder}"),LR_ENC_UTF8 ,LR_ENC_SYSTEM_LOCALE, “UnicodeString1”);

lr_output_message(“Url解码 = %s”,lr_eval_string("{UnicodeString1}"));

3.5.3、 Base64加密与解密
base64加密:参数化GUID={97FD2AD5-1C5E-43F6-8314-FC980CE54FBC}

void GetBase64Encode(const char* in_str,char* out_str)//加密方法

{static unsigned char base64[] =

“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/”;

int curr_out_len = 0;

int i = 0;

int in_len = strlen(in_str);

unsigned char a, b, c;

out_str[0] = ‘\0’;

if (in_len > 0)

{while (i < in_len)

{a = in_str[i];

b = (i + 1 >= in_len) ? 0 : in_str[i + 1];

c = (i + 2 >= in_len) ? 0 : in_str[i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值