曲则全,枉则直,洼则盈,敝则新,少则得,多则惑。 是以圣人抱一为天下式。不自见,故明;不自是,故彰;不自伐,故有功;不自矜,故长。

LoadRunner之模拟用户进行注册

上一篇 / 下一篇  2009-07-14 17:55:05 / 个人分类:测试工具

如何用LR并发50个人同时注册------注册环境Discuz论坛。

 

注意要点:

1.如果注册时用户名和邮件地址已经注册过,则无法注册成功。

2.要求50人同时注册,需要有集合点。

3.如何判定注册成功。

思路:

1.注册时不能用同样的数据,所以参数类型应该是唯一的。

2.集合点放在提交注册表单的事务前。

3.通过检查点,设置手工事务,判断是否注册成功。

具体实现步骤:

1.      录制单个用户脚本,然后将用户名和邮箱参数化,用VBS创建好10000个参数,参数类型设置唯一,且每次迭代取值。因为有50Vuser,所以参数分组是200个一组,即每个Vuser200个参数可以运行。

2.      在提交注册的表单前,插入事务。

3.      在事务前插入集合点。

4.      设置检查点,如果注册成功,会有提示信息,然后设置事务PASS,否则事务FAIL

5.      设置Controller场景负载方式,负载时间,我设置的是10min

6.      运行。

脚本如下

Action()

{

      web_url("index.php",

             "URL=http://localhost:8082/upload/index.php",

             LAST);

      //取出参数

     lr_save_string(lr_eval_string("{parameter}"),"temp");

      //设置集合点

      lr_rendezvous("MyRendezous");

      //开始事务

      lr_start_transaction("MyTransaction"); 

      //设置检查点,本来应该提示“感谢您注册Discuz! Board”,因不支持中文,去掉。

      //如果找到DiscuzBoard,返回个数给icount

      web_reg_find("Search=ALL",

             "SaveCount=icount",

             "Text=Discuz! Board",

             LAST);

      //提交注册

      web_submit_data("register.php",

             "Action=http://localhost:8082/upload/register.php?regsubmit=yes&inajax=1",

             "Method=POST",

             "TargetFrame=",

             "RecContentType=application/xml",

             "Mode=HTML",

             ITEMDATA,

             "Name=formhash", "Value=326af2df", ENDITEM,

             "Name=referer", "Value=http://localhost:8082/upload/index.php", ENDITEM,

             "Name=handlekey", "Value=register", ENDITEM,

             "Name=activationauth", "Value=", ENDITEM,

             "Name=username","Value={temp}",ENDITEM,

             "Name=password", "Value=111111", ENDITEM,

             "Name=password2", "Value=111111", ENDITEM,

             "Name=email", "Value={temp}@hello.com", ENDITEM,

             "Name=regsubmit", "Value=提交", ENDITEM,

             LAST);

      //手工事务结束,0代表没有找到注册成功的提示

     if(strcmp(lr_eval_string("{icount}"),"0")==0)

             lr_end_transaction("MyTransaction", LR_FAIL);

      else

             lr_end_transaction("MyTransaction", LR_PASS);

 

      web_url("return","URL=http://localhost:8082/upload",LAST);

}

总结:

我运行了10分钟,一共注册了2900个用户,一开始设置10000个用户有点多了,有这么多,是因为Vuser在负载的时候,不停的取200个一组里的参数。如第一个是1-200,那第二个就是201-400的参数。如果只有50个参数分给50Vuser,每个Vuser只能有一个参数,那第一次注册后,后面的动作都是失败的。

 


TAG: LR 注册 手工事务

引用 删除 涂涂0930   /   2010-08-16 16:38:14
我也想学
cncnily的个人空间 引用 删除 cncnily   /   2010-06-25 13:48:50
5
引用 删除 oop_808   /   2010-03-29 17:10:55
5
 

评分:0

我来说两句

日历

« 2024-04-18  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 46314
  • 日志数: 33
  • 文件数: 1
  • 建立时间: 2009-07-10
  • 更新时间: 2010-12-07

RSS订阅

Open Toolbar