收藏本站 收藏本站
积木网首页 - 软件测试 - 常用手册 - 站长工具 - 技术社区
软件测试 > LoadRunner > 正文

首页 | 领域细分: 游戏测试 安全测试 手机测试 Web测试 | 技术研究: 单元测试 入门教程 用例设计 性能测试 功能测试 | 测试职场: 面试精选 职场发展 面试试题

测试管理: 配置及流程 - 需求管理 - 质量验收 - 缺陷管理 - 其它管理相关 | 开发语言: PHP技巧 - PHP基础 - PHP实例 - PHP错误代码

测试工具: LoadRunner JiRa QuickTestPro RoBot WinRunner TestDirector 其它测试工具 | 数据库: Mysql数据库 Oracle数据库 CSS/DIV基础 HTML基础

LoadRunner模拟真实用户访问

来源:互联网 日期:2014-05-23 16:30

  在进行压力测试设计时,总会碰到一些case需要考虑用户实际的行为对系统的影响。使用lr录制脚本时,有很多方法都可以模拟用户的真实使用状态,例如:
  1、lr_think_time()函数的使用可以模拟用户浏览的操作;
  2、模拟Network Speed(Runtime-setting下的Network-Speedsimulation),可以模拟用户访问速度为最大带宽、自定义带宽以及各个连接模式的带宽(ADSL、ISDN等);
  3、代理设置(Runtime-setting下的Internet里的proxy设置),可以模拟用户访问的代理服务器设置;
  4、IP欺骗,设置IP欺骗可以模拟vuser使用不用的IP进行脚本运行,具体设置请参考51testing里的相关。帖子

  如果一个页面上有很多业务项入口,我们要测试用户访问后会选择某个业务项进入浏览的压力,这个时候我们可以考虑如下设置来模拟:
  1、分别录制多个脚本,在场景控制器中加载多个组,应用不同的组策略来模拟用户的业务访问:
  例:有100个用户登录首页,然后有30个人去访问【新闻】业务,有40个人访问【财经】,还有30个人访问【论坛】;
  (1)、分别录制访问【新闻】、【财经】、【论坛】的脚本 ;
  (2)、使用场景控制器(Controller) ;
  (3)、添加组(group)【新闻】脚本,设置vuser数为30;添加组(group)【财经】脚本,设置vuser数为40;添加组(group)【论坛】脚本,设置vuser数为30。

  2、在一个脚本里录制多个action,然后使用集合点(rendezvous)来一起运行多个action
  例如:有100个用户登录首页,然后平均访问【新闻】、【财经】、【论坛】;
  (1)、分别录制访问【新闻】、【财经】、【论坛】的脚本到不同的action里 ;
  (2)、在每个action脚本主函数action(){}的开始设置同一个集合点(名称相同);
  (3)、使用场景控制器(Controller)设置100个vuser运行,即可达到平均访问3个业务的效果。

  除了上面的方法,我再介绍一种使用随机数的方法:
  例如:未知用户数量,有70%的人使用百度( http://www.baidu.com),有17%的人使用谷歌(http://www.google.cn),有7%的人使用yahoo(http://search.cn.yahoo.com),剩余的人使用搜狗(http://www.sogou.com)进行搜索,那么怎么模拟呢?

  脚本示例如下:Action()
{
int which; //存储随机数的变量 which = rand()%100; //生成0-99的随机数并赋值给which
lr_log_message ("DebugInfo:which=%dn",which);//调试信息
if (which >= 30)//70%访问baidu
{
web_url("www.baidu.com",
"URL=http://www.baidu.com/",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTML",
LAST);
}
else if ((which >=13) and (which <30))//17%访问Google
{
web_url("www.google.cn",
"URL=http://www.google.cn/",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t2.inf",
"Mode=HTML",
EXTRARES,
"Url=/images/nav_logo3.png", ENDITEM,
LAST);
}
else if ((which >=6) and (which <13)) //7%访问yahoo
{
web_url("search.cn.yahoo.com",
"URL=http://search.cn.yahoo.com/",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t3.inf",
"Mode=HTML",
EXTRARES,
"Url=/testing/uppic/200709/20070911101206590.gif", ENDITEM,
"Url=/testing/uppic/200709/20070911101207694.gif", ENDITEM,
LAST);
}
else //6%访问sogou
{
web_url("www.sogou.com",
"URL=http://www.sogou.com/",
"TargetFrame=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t4.inf",
"Mode=HTML",
EXTRARES,
"Url=/images/tab.gif", ENDITEM,
"Url=http://pv.sogou.com/pv.gif?t?=1181198683187446?r?=", ENDITEM,
LAST);
}
return 0;
}
  这么写脚本其实和组策略形成的效果没有什么分别,但是我觉得还是写这样的结构比较好,我自己也不知道为什么。
  这个写法是从游戏脚本语言(lua)中学会的,以前测试游戏的时候总是看脚本语言(lua),有很多宝物的掉率就是根据随机数判断来决定的。

本周排行

别人正在浏览

强悍的草根IT技术社区,这里应该有您想要的!
Copyright © 2010 Gimoo.Net. All Rights Rreserved  京ICP备05050695号