使用LR编写下载类脚本
如何下载并保存文件到本地,实现文件下载的脚本制作。以下是本人测试某系统总结整理的脚本,仅供参考。
#include "lrs.h"
Action()
{
// 示例一: //第一种创建随机数的方法,此种方案是我们采用的
int flen; //定义一个整型变量保存获得文件的大小
long filedes; //保存文件句柄
char file[]="\0"; //保存文件路径及文件名
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[]="\0"; //保存文件路径及文件名
int rNum; //定义一个随机数
char S[]; //数字由int转为char
srand(time(NULL)); //初始化
rNum= rand() % ; //获得0~100的随机数
sprintf(S,"%d",rNum);//int 转换为 char
strcat(file,"D:\\DownLoad\\");//将d:\test路径赋值给file
strcat(file,S);//在file后面加上随机数
strcat(file,".zip"); //输出的文件格式 web_set_max_html_param_len("");//设置参数的最大长度,注意该值必须大于文件的大小
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 > ) //实际 4KB 的压缩文件
{
lr_end_transaction("下载",LR_PASS);
if((filedes = fopen(file, "wb")) == NULL) //以写方式打开文件
{
lr_output_message("Open File Failed!");
return -;
}
fwrite(lr_eval_string("{Download}"), flen, , 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("");//设置参数的最大长度,注意该值必须大于文件的大小
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("");//设置参数的最大长度,注意该值必须大于文件的大小
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 > ) //实际 4KB 的压缩文件
{
lr_end_transaction("下载",LR_PASS);
}else{
lr_end_transaction("下载",LR_FAIL);
} return ;
}
使用LR编写下载类脚本的更多相关文章
- 【LoadRunner】LR编写Dubbo协议脚本
一.Dubbo服务简介 Dubbo是一个分布式服务架构,把核心业务抽取出来作为独立的服务,使前端应用能更快速和稳定的响应. Dubbo服务工作原理:服务提供方提供接口,并提供接口的实现,提供方注册服务 ...
- 使用LR编写HTTP协议Json报文格式接口脚本实战
最近在做HTTP协议接口压测时,遇到一些编写脚本方面的问题,在这里总结记录下,以便以后温习,也希望能帮助到和我有同样困惑的朋友吧. //实战代码如下所示:Action() { lr_start_tra ...
- LR编写Socket脚本方法2(从文件读取报文)
之前,给大家分享了LoadRunner编写socket协议脚本的基本方法与规则,今天给大家分享下,如何从本地文件,读取内容,并作为报文,发送到服务端:该方法也是在工作中遇到的一个难点,想通过这种方 ...
- LoadRunner下载文件脚本
LoadRunner下载文件脚本 在看普泽关于pezybase的测试报告的时候,发现里面有用到jmeter(http协议)并发测试下载文件,考虑到后面可能需要在公司pezybase的并发下载,把之前 ...
- 病毒木马查杀实战第025篇:JS下载者脚本木马的分析与防御
前言 这次我与大家分享的是我所总结的关于JS下载者脚本木马的分析与防御技术.之所以要选择这样的一个题目,是因为在日常的病毒分析工作中,每天都会遇到这类病毒样本,少则几个,多则几十个(当然了,更多的样本 ...
- linux软件管理之------编译安装nginx服务器并手动编写自动化运行脚本
红帽系列的 linux软件管理分为三类:1. rpm 安装软件.2. yum 安装软件.3. 源码包编译安装.前面两种会在相关专题给出详细讲解.源码包的编译安装是非常关键的,我们知道linux的相关版 ...
- 品味性能之道<九>:利用Loadrunner编写socket性能测试脚本简述
一.概述 Loadrunner拥有极为丰富的工具箱,供予我们制造出各种奇妙魔法的能力.其中就有此次要讨论的socket套接字操作. 二.socket概述 ...
- 编写无Java脚本的JSP页面
在上一章中总结了Web开发中应用MVC架构模式,将Servlet 用做控制器,JSP作为视图,JavaBean作为模型,实现业务流程控制,页面逻辑和业务逻辑的分离.然而,使用前面的技术实现MVC,并不 ...
- [转贴]systemd 编写服务管理脚本
[转贴]sparkdev大神的博客, 关于 systemd的配置文件的 介绍, 自己之前二进制安装 k8s 时 超过一个 service文件 但是当时不明不白的. 现在再学习一下大神的文章 的确牛B ...
随机推荐
- 检查对象是否为NULL或者为Empty
不管是在Winform开发,还是在asp.net 开发中当从一个数据源中获取数据时你总是不知道这个数据的状态,这个时候总要对她进行一次判断,不过每次进行一次判断总是要写怎么一堆代码,时间长了,总感觉不 ...
- Hive 本地调试方法
关键词:hive, debug 本地调试(local debug) Hive 可分为 exec (hive-exec,主要对应源码里的ql目录) 和 metastore 两部分,其中exec对外有两种 ...
- 弄懂CNN,然后提升准确率4.21-4.27
英语: 1.每天背单词,75起步.(这周没怎么背,考虑调整了) 2.并背王江涛图画作文一:传统文化(这周没背,但肯定要做) 学校: 0.吴恩达ML 1.毕设一:可视化,肺癌基因突变,深度学习(那么作图 ...
- JetBrains系列IDE快捷键大全(转载)
编辑 快捷键组合 说明 Ctrl + Space 代码自动完成提示(选择) Alt + Enter 显示意图动作和快速修复 Ctrl + P 参数信息 (在调用方法参数忘记的时候,提示) Ctrl + ...
- Notepad++常用快捷键
Ctrl-H 打开Find / Replace 对话框 Ctrl-D 复制当前行 Ctrl-L 删除当前行 Ctrl-T 上下行交换 F3 找下一个 Shift-F3 ...
- 12.JavaScript字符串方法
JS字符串常用方法总结 动态方法:1.str.charAt(index); 返回子字符串,index为字符串下标,index取值范围[0,str.length-1] 动态方法:2.str.charC ...
- 小甲鱼Python3笔记
000-愉快的开始 入门容易,学习难,代码量少. 跨平台: Windows, Mac OS, Linux, UNIX. 应用领域: 操作系统 WEB 3D动画 企业应用 云计算等等. 001-我和Py ...
- 高德Location
1.创建Demo,获取key 打开高德开发平台 → 我的应用 → 创建应用 → 创建新Key 说明: 1.发布版安全码获取:用自己的签名打包成apk安装软件,用SHA1工具查看 2.调试版安全码获取: ...
- 对scanf和printf的研究!!
在做项目的时候,突然很纠结要不要清理.所以赶紧写一篇博客记一下!! 1. scanf函数 在代码中,如果碰到了两个挨着输入的情况,就会出现问题!! 输入一个字符 r 就会出现一下情况!! 第2句sca ...
- [python] 溜了,溜了,七牛云图片资源批量下载 && 自建图床服务器
故事背景: 七牛云最近一波测试域名操作真是把我坑死了!这简直和百度赠送你2T网盘,之后再限速一样骚操作.于是,痛定思痛自己买个云主机.自己搭图床应用! 1.七牛图片批量下载到本地 1.1 曲折尝试 当 ...