LoadRunner基础
1、录制脚本
2、添加检查点
1)进入树视图
2)进入需要添加检查点的页面
3)定义检查要求
如:
3、输出函数
1)lr_output_message(变量);
2)
3) 出错继续运行的函数
脚本出错后继续运行: lr_continue_on_error(1);
4、加入事务
5、使用数据文件参数化
1)
Action()
{
lr_output_message(lr_eval_string("{test}"));
return 0;
}
2)设置迭代次数
3)迭代次数
数据
1)
![](https://img2020.cnblogs.com/blog/1993414/202101/1993414-20210119110100266-1371571385.png)
Action()
{
lr_output_message(lr_eval_string("第一次:{test}"));
lr_output_message(lr_eval_string("第二次:{test}"));
return 0;
}
结果
Action.c(3): 通知: 参数替换:参数“test”=“1”
Action.c(3): 第一次:1
Action.c(4): 通知: 参数替换:参数“test”=“1”
Action.c(4): 第二次:1
正在结束操作 Action。
Action.c(3): 通知: 参数替换:参数“test”=“2”
Action.c(3): 第一次:2
Action.c(4): 通知: 参数替换:参数“test”=“2”
Action.c(4): 第二次:2
正在结束操作 Action。
Action.c(3): 通知: 参数替换:参数“test”=“3”
Action.c(3): 第一次:3
Action.c(4): 通知: 参数替换:参数“test”=“3”
Action.c(4): 第二次:3
2)
![](https://img2020.cnblogs.com/blog/1993414/202101/1993414-20210119110300575-284876904.png)
Action()
{
lr_output_message(lr_eval_string("第一次:{test}"));
lr_output_message(lr_eval_string("第二次:{test}"));
return 0;
}
结果
Action.c(3): 第一次:1
Action.c(4): 第二次:2
Action.c(3): 第一次:3
Action.c(4): 第二次:4
Action.c(3): 第一次:5
Action.c(4): 第二次:6
3)
![](https://img2020.cnblogs.com/blog/1993414/202101/1993414-20210119110808527-75224032.png)
Action()
{
lr_output_message(lr_eval_string("第一次:{test}"));
lr_output_message(lr_eval_string("第二次:{test}"));
return 0;
}
结果
Action.c(3): 第一次:1
Action.c(4): 第二次:1
Action.c(3): 第一次:1
Action.c(4): 第二次:1
Action.c(3): 第一次:1
Action.c(4): 第二次:1
4)
![](https://img2020.cnblogs.com/blog/1993414/202101/1993414-20210119111003718-1754078581.png)
结果随机
Action.c(3): 第一次:5
Action.c(4): 第二次:5
Action.c(3): 第一次:4
Action.c(4): 第二次:4
Action.c(3): 第一次:
Action.c(3): 第二次:
5)
![](https://img2020.cnblogs.com/blog/1993414/202101/1993414-20210119111233080-828312690.png)
结果
Action.c(3): 第一次:3
Action.c(4): 第二次:3
Action.c(3): 第一次:6
Action.c(4): 第二次:1
Action.c(3): 第一次:4
Action.c(4): 第二次:4
6)
![](https://img2020.cnblogs.com/blog/1993414/202101/1993414-20210119111416280-2114029714.png)
Action.c(3): 第一次:3
Action.c(4): 第二次:3
Action.c(3): 第一次:3
Action.c(4): 第二次:3
Action.c(3): 第一次:3
Action.c(4): 第二次:3
再次运行,变成全是5
7)
![](https://img2020.cnblogs.com/blog/1993414/202101/1993414-20210119111630826-1296793445.png)
Action.c(3): 第一次:1
Action.c(4): 第二次:1
Action.c(3): 第一次:2
Action.c(4): 第二次:2
Action.c(3): 第一次:3
Action.c(4): 第二次:3
8)
![](https://img2020.cnblogs.com/blog/1993414/202101/1993414-20210119111741444-468335035.png)
9)
![](https://img2020.cnblogs.com/blog/1993414/202101/1993414-20210119111822007-1052971879.png)
Action.c(3): 第一次:1
Action.c(4): 第二次:1
Action.c(3): 第一次:1
Action.c(4): 第二次:1
Action.c(3): 第一次:1
Action.c(4): 第二次:1
6、开启日志 , 控制在场景运行时显示日志信息
7、参数化
使用file文件数据
1)
2)
3)
使用sqlserver数据库数据源
1)创建数据库、表,向表中插入数据200条
如
declare @i int=1 declare @uname varchar(50) declare @pwd varchar(50) while @i<=200 begin set @pwd=CONVERT(varchar(3),@i) set @uname= 'zs'+@pwd insert into lr_user values(@uname,@pwd) set @i=@i+1 end
2)lr连接sqlserver
开启sqlserver的tcp/ip协议
关闭防火墙
设置ip地址,设置在同一网段,使得LoadRunner所在客户机能ping通sqlserver所在的机器
重新驱动数据库服务MSSQLSERVER
3)配置lr与数据库的连接
输入之后,点击下一步
选择验证方式,以及输入数据库,用户名、密码。点击下一步
选择将要连接的数据库,点击下一步
点击完成
测试连接。连接成功后,点击确认
输入密码点击确定
输入查询语句,点击完成
可以看到数据库数据已经出现
4)参数化原始数据
使用随机数参数化
使用脚本生成随机数参数化
产生100-150之间的随机数 Action() { int a,i; for(i=0;i<26;i++){ a = rand()%51+100; lr_output_message("%d",a); } return 0; }
随机产生26个大写字母
Action()
{
int a,i;
for(i=0;i<26;i++){
a = rand()%26+65;
lr_output_message("%c",a);
}
return 0;
}
strncat 函数
strncat(dest, src, n) : 从字符串 src 的开头拷贝 n 个字符到 dest 字符串尾部,从而实现 字符串的连接。
Action() { char a[17],seed[]="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; int i,ran; for(i=0;i<16;i++){ ran=rand()%62; strncat(a,seed+ran,1); } lr_output_message(a); return 0; }
输出为:0EOzuAyRTAXt3jFfJgnuxD3zrFkr7VWR