使用LR编写下载类脚本

Posted ssj0723

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用LR编写下载类脚本相关的知识,希望对你有一定的参考价值。

如何下载并保存文件到本地,实现文件下载的脚本制作。以下是本人测试某系统总结整理的脚本,仅供参考。

#include "lrs.h"
Action()
{
// 示例一:

//第一种创建随机数的方法,此种方案是我们采用的
    int flen;             //定义一个整型变量保存获得文件的大小
    long filedes;         //保存文件句柄
    char file[256]="";  //保存文件路径及文件名
    char * strNumber;     //定义一个随机数
    strNumber=lr_eval_string("{RandomNum}"); 获取1~100个随机数
    strcat(file,"D:\DownLoad\"); //将路径保存到file变量中
    strcat(file,strNumber);        //将获得的随机数拼接在file变量之后 
    strcat(file,".zip");           //将下载的文件后缀名.rar拼接在file变量之后
 
//第二种创建随机数的方法
    int flen;  //文件大小
    long filedes;  //响应数据内容大小
    char file[256]=""; //保存文件路径及文件名 
    int rNum;         //定义一个随机数                                       
    char S[8];       //数字由int转为char
    srand(time(NULL)); //初始化
    rNum= rand() % 100; //获得0~100的随机数
    sprintf(S,"%d",rNum);//int 转换为 char
    strcat(file,"D:\DownLoad\");//将d:	est路径赋值给file
    strcat(file,S);//在file后面加上随机数
    strcat(file,".zip");  //输出的文件格式
       

     web_set_max_html_param_len("20000");//设置参数的最大长度,注意该值必须大于文件的大小
     web_reg_save_param("Download","LB=","RB=","SEARCH=BODY", LAST);
     lr_start_transaction("下载"); 

     web_url("DownLoadBW","URL=http://IP:port/bsreport/download.action?fileName=/report/workdir/reportfile/20141231.txt.zip",
      "Resource=1", 
      LAST ); 

     flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);//获取响应中的文件长度

  if(flen > 0)   //实际 4KB 的压缩文件 
     {
     lr_end_transaction("下载",LR_PASS);
    if((filedes = fopen(file, "wb")) == NULL)  //以写方式打开文件
    {
     lr_output_message("Open File Failed!");
     return -1;
    }
    fwrite(lr_eval_string("{Download}"), flen, 1, filedes); //写入文件内容
    fclose(filedes);  //关闭文件  
     }else{
     lr_end_transaction("下载",LR_FAIL); 
   
     }

  /**
   此种方法是把下载的文件下载到D:\DownLoad目录下并命名为 C003_15087_01.txt.zip
   测试结果证明:在并发压力下,多个进程对同一个文件做保存、打开和替换,就会出现排队等待现象,
   大量占用执行机的内存资源。可能导致内存溢出。
  **/
 

//示例二:

    int flen;  //定义一个整型变量保存获得文件的大小
    long filedes;  //保存文件句柄
    char * file = "D:\DownLoad\C003_15087_01.txt.zip"; //保存文件路径及文件名
    web_set_max_html_param_len("60000");//设置参数的最大长度,注意该值必须大于文件的大小
    web_reg_save_param("Download","LB=","RB=","SEARCH=BODY", LAST);
    lr_start_transaction("产品下载"); 
    web_url("DownLoadBW",  
            "URL=http://IP:port/bsreport/download.action?fileName=/report/workdir/reportfile/20141231.txt.zip",
   "Resource=1", 
    LAST ); 
       
     flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);//获取响应中的文件长度

     /***下面的方式是如果获取到的文件大小大于0,则判断交易成功,然后再去写文件,否则直接判断交易失败。
     
    if(flen > 0)   //实际 4KB 的压缩文件 
     {
     lr_end_transaction("下载",LR_PASS);
    if((filedes = fopen(file, "wb")) == NULL)  //以写方式打开文件
    {
     lr_output_message("Open File Failed!");
     return -1;
    }
    fwrite(lr_eval_string("{Download}"), flen, 1, filedes); //写入文件内容
    fclose(filedes);  //关闭文件
     }else{
     lr_end_transaction("下载",LR_FAIL); 
     }
    ***/ 
   /***下面的方式是如果写文件成功就判断交易成功,否则交易失败
   if(flen > 0)   
      {
        if((filedes = fopen(file, "wb")) == NULL)
        {
            lr_output_message("Open File Failed!");
         lr_end_transaction("下载",LR_FAIL);
            return -1;
        }
        fwrite(lr_eval_string("{Download}"), flen, 1, filedes);//写入文件内容
        fclose(filedes);  //关闭文件
    lr_end_transaction("下载",LR_PASS);
    }
    ***/


/** 
   此种方法是只从服务器上获取下载的文件资源路径即可,不把资源下载到本地。
   测试结果证明:在并发压力下,大量占用执行机的内存资源。压力达到一定程度会导致内存溢出。
**/

 

//示例三:

     long flen;
     web_set_max_html_param_len("50000");//设置参数的最大长度,注意该值必须大于文件的大小
     web_reg_save_param("Download","LB=","RB=","SEARCH=BODY", LAST);
     lr_start_transaction("下载"); 
    web_url("DownLoadBW", 
             "URL=http://IP:port/bsreport/download.action?fileName=/report/workdir/reportfile/20141231.txt.zip",
             "Resource=1", 
               LAST ); 
       flen = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);//获取响应中的文件长度
    if(flen > 0)   //实际 4KB 的压缩文件 
     {
     lr_end_transaction("下载",LR_PASS);  
     }else{
     lr_end_transaction("下载",LR_FAIL); 
     }

return 0;
  }

 

以上是关于使用LR编写下载类脚本的主要内容,如果未能解决你的问题,请参考以下文章

LoadRunner12的安装,如何添加jar包编写java脚本及相关配置信息

SQL Prompt7.2下载及破解教程

LR Java脚本编写方法

LR学习笔记17-Java虚拟用户

性能测试工具LoadRunner12-LR之Virtual User Generator 脚本编写验证步骤

性能测试学习第九天_脚本编写