loadrunner使用参数化,关联修改浏览帖子脚本

2011-08-17  戴华荣 

下面是浏览帖子的一个Action录制后经过简单修改的初始脚本。

  1. viewtopic()  
  2. {  
  3.   
  4.     //进入某个版块  
  5.     web_url("forum.php_3",   
  6.         "URL=http://192.168.159.144/bbs/forum.php?mod=forumdisplay&fid=38",   
  7.         "Resource=0",   
  8.         "RecContentType=text/html",   
  9.         "Referer=http://192.168.159.144/bbs/forum.php",   
  10.         "Snapshot=t122.inf",   
  11.         "Mode=HTML",   
  12.         LAST);  
  13.   
  14.   
  15.      //点击某个帖子     
  16.        web_url("forum.php_4",   
  17.         "URL=http://192.168.159.144/bbs/forum.php?mod=viewthread&tid=997&extra=page%3D1",   
  18.         "Resource=0",   
  19.         "RecContentType=text/html",   
  20.         "Referer=http://192.168.159.144/bbs/forum.php?mod=forumdisplay&fid=2",   
  21.         "Snapshot=t125.inf",   
  22.         "Mode=HTML",   
  23.         EXTRARES,   
  24.         "Url=static/image/common/share_btn.png""Referer=http://192.168.159.144/bbs/forum.php?mod=viewthread&tid=997&extra=page%3D1", ENDITEM,   
  25.         "Url=static/image/common/midavt_shadow.gif""Referer=http://192.168.159.144/bbs/forum.php?mod=viewthread&tid=997&extra=page%3D1", ENDITEM,   
  26.         "Url=static/image/common/fastreply.gif""Referer=http://192.168.159.144/bbs/forum.php?mod=viewthread&tid=997&extra=page%3D1", ENDITEM,   
  27.         "Url=static/image/common/edit.gif""Referer=http://192.168.159.144/bbs/forum.php?mod=viewthread&tid=997&extra=page%3D1", ENDITEM,   
  28.         LAST);  
  29.   
  30. }  

在上面脚本中,点击的板块的fid与帖子的tid都是死的。这两个地方需要参数化和关联。

1.参数化板块的fid

如下图

然后将进入板块的fid的值替换为参数。如下

  1. web_url("forum.php_3",   
  2.     "URL=http://192.168.159.144/bbs/forum.php?mod=forumdisplay&fid={fid}",   
  3.     "Resource=0",   
  4.     "RecContentType=text/html",   
  5.     "Referer=http://192.168.159.144/bbs/forum.php",   
  6.     "Snapshot=t122.inf",   
  7.     "Mode=HTML",   
  8.     LAST);  


2.关联帖子的tid:

经过上面的对板块的fid值进行参数化后,每次迭代就会进入不同的板块,但是后面点击的帖子的tid是死了,不能做到进入哪个板块就点击哪个帖子的效果。所以要对tid进行关联。

我们首先查看下板块页面的html源代码,确定关联的左右边界。我将关键部分做了截图


图中箭头所指的部分就是需要关联的内容。

2.1 获取单个参数

首先在点击帖子之前执行 web_reg_save_param()函数,将找到的帖子的tid放入topictid参数中

  1. <strong>  web_reg_save_param("topictid",  
  2.         "LB=<a href=\"forum.php?mod=viewthread&tid=",  
  3.         "RB=&extra=page%3D1\" onclick=\"atarget(this)\" class=\"xst\" >",          
  4.         "Search=NoResource",  
  5.         "Notfound=warning",  
  6.         "ORD=1",  
  7.         LAST);  
注意:如果左右边界中有双引号,请将双引号前加上转义字符\
然后在点击帖子的时候使用topictid参数对帖子tid进行参数化。在此之前还需要判断此时板块里有没有帖子,没有帖子退出程序,有帖子的话执行web_url函数。

整体脚本如下:

  1. viewtopic()  
  2. {  
  3.   
  4.     //查找出第一个帖子的tid,将此作为参数  
  5.     web_reg_save_param("topictid",  
  6.         "LB=<a href=\"forum.php?mod=viewthread&tid=",  
  7.         "RB=&extra=page%3D1\" onclick=\"atarget(this)\" class=\"xst\" >",          
  8.         "Search=NoResource",  
  9.         "Notfound=warning",  
  10.         "ORD=1",  
  11.         LAST);  
  12.   
  13.     //进入某个版块  
  14.     web_url("forum.php_3",   
  15.         "URL=http://192.168.159.144/bbs/forum.php?mod=forumdisplay&fid={fid}",   
  16.         "Resource=0",   
  17.         "RecContentType=text/html",   
  18.         "Referer=http://192.168.159.144/bbs/forum.php",   
  19.         "Snapshot=t122.inf",   
  20.         "Mode=HTML",   
  21.         LAST);  
  22.   
  23.   
  24.    //如果板块中没有帖子,直接退出脚本,如果有帖子,进行点击  
  25.    if ( strcmp(lr_eval_string("{topictid}"),"") == 0 ) {  
  26.   
  27.       return 0;  
  28.    }else  
  29.   {  
  30.        web_url("forum.php_4",   
  31.         "URL=http://{IP}/bbs/forum.php?mod=viewthread&tid={topictid}&extra=page%3D1",   
  32.         "Resource=0",   
  33.         "RecContentType=text/html",   
  34.         "Referer=http://{IP}/bbs/forum.php?mod=forumdisplay&fid=2",   
  35.         "Snapshot=t125.inf",   
  36.         "Mode=HTML",   
  37.         EXTRARES,   
  38.         "Url=static/image/common/share_btn.png", "Referer=http://{IP}/bbs/forum.php?mod=viewthread&tid=997&extra=page%3D1", ENDITEM,   
  39.         "Url=static/image/common/midavt_shadow.gif", "Referer=http://{IP}/bbs/forum.php?mod=viewthread&tid=997&extra=page%3D1", ENDITEM,   
  40.         "Url=static/image/common/fastreply.gif", "Referer=http://{IP}/bbs/forum.php?mod=viewthread&tid=997&extra=page%3D1", ENDITEM,   
  41.         "Url=static/image/common/edit.gif", "Referer=http://{IP}/bbs/forum.php?mod=viewthread&tid=997&extra=page%3D1", ENDITEM,   
  42.         LAST);  
  43.         
  44.   }  
  45.   
  46.    return 0;  
  47.   
  48. }  




2.2 获取参数数组

  前面的方法有一个缺点,它只能点击某个板块的第一个帖子。这显然不是我们想要的结果。我们想要结果是能够随机点击某个板块的一个帖子。这时需要用到参数数组。

也就是执行 web_reg_save_param()函数的时候将某个板块首页的全部帖子的tid保存到一个参数数组中。脚本如下:

  1. web_reg_save_param("topictid",  
  2.     "LB=<a href=\"forum.php?mod=viewthread&tid=",  
  3.     "RB=&extra=page%3D1\" onclick=\"atarget(this)\" class=\"xst\" >",          
  4.     "Search=NoResource",  
  5.        "Notfound=warning",  
  6.     "ORD=ALL",  
  7.     LAST);  

对照可以看出,此处把ORD=1,修改为了ORD=ALL。

修改后整体脚本如下:

  1. viewtopic()  
  2. {  
  3.   
  4.     //用于记录参数数组的长度  
  5.     int len;  
  6.   
  7.     //用于记录参数数组中随机取出的一个参数的值  
  8.     char * topic;  
  9.   
  10.      //查找出所有帖子的的tid,并将此放入参数数组中  
  11.     web_reg_save_param("topictid",  
  12.         "LB=<a href=\"forum.php?mod=viewthread&tid=",  
  13.         "RB=&extra=page%3D1\" onclick=\"atarget(this)\" class=\"xst\" >",          
  14.         "Search=NoResource",  
  15.         "Notfound=warning",  
  16.         "ORD=ALL",  
  17.         LAST);  
  18.   
  19.   
  20.     //进入某个版块  
  21.     web_url("forum.php_3",   
  22.         "URL=http://{IP}/bbs/forum.php?mod=forumdisplay&fid={fid}",   
  23.         "Resource=0",   
  24.         "RecContentType=text/html",   
  25.         "Referer=http://{IP}/bbs/forum.php",   
  26.         "Snapshot=t122.inf",   
  27.         "Mode=HTML",   
  28.         LAST);  
  29.   
  30.     //将数组长度的值赋值给len变量  
  31.     len =  atoi(lr_eval_string("{topictid_count}"));  
  32.   
  33.     //将参数数组中随机取出的一个值赋给topic变量  
  34.     topic = lr_paramarr_random("topictid");  
  35.   
  36.     //将参数数组中随机取出的值保持为randomtopic参数  
  37.      lr_save_string( topic,"randomtopic");  
  38.      if( len == 0)  
  39.      {  
  40.         return 0;  
  41.      }else  
  42.      {  
  43.   
  44.          web_url("forum.php_4",   
  45.             "URL=http://{IP}/bbs/forum.php?mod=viewthread&tid={randomtopic}&extra=page%3D1",   
  46.             "Resource=0",   
  47.             "RecContentType=text/html",   
  48.             "Referer=http://{IP}/bbs/forum.php?mod=forumdisplay&fid=2",   
  49.             "Snapshot=t125.inf",   
  50.             "Mode=HTML",   
  51.             EXTRARES,   
  52.             "Url=static/image/common/share_btn.png", "Referer=http://{IP}/bbs/forum.php?mod=viewthread&tid=997&extra=page%3D1", ENDITEM,   
  53.             "Url=static/image/common/midavt_shadow.gif", "Referer=http://{IP}/bbs/forum.php?mod=viewthread&tid=997&extra=page%3D1", ENDITEM,   
  54.             "Url=static/image/common/fastreply.gif", "Referer=http://{IP}/bbs/forum.php?mod=viewthread&tid=997&extra=page%3D1", ENDITEM,   
  55.             "Url=static/image/common/edit.gif", "Referer=http://{IP}/bbs/forum.php?mod=viewthread&tid=997&extra=page%3D1", ENDITEM,   
  56.             LAST);  
  57.   
  58.      }  
  59.   
  60.   
  61.   
  62.   
  63.   
  64.    return 0;  
  65.   
  66. }  


在此说明下参数数组。我们可以通过下面的方法生成一个参数数组。

  1. lr_save_string("www.baidu.com","site_1");  
  2. lr_save_string("www.sina.com","site_2");  
  3. lr_save_string("www.163.com","site_3");  
  4. lr_save_string("www.qq.com","site_4");  
  5. lr_save_string("4","site_count");  

此时参数数组名为site,各个参数的名为site_1,site_2,site_3,site_4。在一个参数数组中,有一个参数用来记录参数数组的长度。即参数名_count。



516°/5091 人阅读/7 条评论 发表评论

邓智群  2011-08-17

不错,就是图片不太好


戴华荣  2011-08-18

邓智群: 不错,就是图片不太好
哪张图?


邓智群  2011-08-18

戴华荣: 哪张图?
1和2的图片都没有显示出来


戴华荣  2011-08-18

邓智群: 1和2的图片都没有显示出来
现在看看呢,应该显示出来了。


邓智群  2011-08-18

戴华荣: 现在看看呢,应该显示出来了。
恩 不错


袁帅  2011-08-29

都显示出来了,很不错


小窝  2011-08-29

同步至官方微博


登录 后发表评论