lr跑歌曲下载的压测脚本

2010-08-05  张洪杰 

最近做了几个压力测试,在调试脚本的时候学到点东西,现在来分享下,也为自己以后复习使用。

    最近的项目是歌曲下载的压力测试,在用loadrunner录制脚本的时候只能录制网页上的内容,下载的过程loadrunner不能录制。问题出现了, 如果只用录制的脚本去跑压测对服务器产生的压力相当小,而且下载这个最基本的业务根本没有测试到,压力测试没有意义。

    那么问题怎么解决呢?我在网络上搜索了一些解决方案,然后结合自己的应用把下载的业务脚本调好的。主要思想是:

1、用lr的 web_reg_save_param函数保存网页的数据

2、用fopen函数获取写入文件的句柄

3、用fwrite函数在本地写入下载数据

    具体脚本如下:

    long flen;//定义文件大小
    long fp;//定义文件句柄
    char file[256]="\0";//定义保存文件名           
    char * chNumber;//保存随机数

    web_url("xx",
        "URL=下载地址",
        "Resource=0",
        "RecContentType=text/html",
        "Referer=",
        "Snapshot=t1.inf",
        "Mode=HTML",
        LAST);

     web_link("accompany/",
        "Text=accompany/",
        "Snapshot=t2.inf",
        LAST);

     chNumber=lr_eval_string("{Random}");  //获取随机数,其中Random是一个参数能产生随即整数
     lr_log_message("随机数是:%s",chNumber);
            strcat(file,"e:\\song");//连接函数用于连接两个字符串,文件保存在E盘
            strcat(file,chNumber);
            strcat(file,".mp3");//文件保存在本机E盘,格式为:song+随机数+.mp3
    fp = fopen(file,"wb");//获取文件句柄,文件句柄是打开文件的唯一识别依据
    web_set_max_html_param_len("500000");//设置页面接收最大的字节数,该设置应大于下载文件的大小
    web_reg_save_param("FILED","LB=","RB=","Search=Body",LAST);//保存页面下载的内容  

         web_link("chaqubz.mp3",
        "Text={song}", //参数化下载歌曲
        "Snapshot=t3.inf",
        LAST);
    
     flen = web_get_int_property( HTTP_INFO_DOWNLOAD_SIZE );//获取下载文件大小
     if (flen>=0)
     {
      fwrite(lr_eval_string("{FILED}"),flen,1,fp);//在本地写入下载数据
     }
        lr_think_time( 4 );
     fclose(fp);
     lr_log_message("参数是:%s",lr_eval_string("{song}"));
     return 0;


493°/4903 人阅读/3 条评论 发表评论

李维敏  2010-08-05

学习了


陈晓义  2010-08-06

fwrite(lr_eval_string("{FILED}"),flen,1,fp);//在本地写入下载数据
看完这个 我有一个疑问,系统能判断下载的内容,为什么还需要写入本地文件?难道这样就代表下载的时间?


张洪杰  2010-08-09

陈晓义: fwrite(lr_eval_string("{FILED}"),flen,1,fp);//在本地写入下载数据
看完这个 我有一个疑问,系统能判断下载的内容,为什么还需要写入本地文件?难道这
我们这次测试是基本验证


登录 后发表评论