首页
学习
活动
专区
圈层
工具
发布
30 篇文章
1
loadrunner 脚本开发-基本知识
2
Loadrunner 脚本开发-利用loadrunner开发Windows Sockets协议脚本
3
Loadrunner 脚本开发-利用Loadrunner生成Web service测试脚本
4
loadrunner 脚本开发-url解码
5
loadrunner 脚本录制-Action分类
6
loadrunner 脚本开发-文件下载
7
loadrunner 脚本优化-关联设置
8
loadrunner 脚本开发- web_url函数详解
9
loadrunner 脚本优化-加密与解密
10
loadrunner 脚本优化-检查点设置
11
loadrunner 脚本优化-集合点设置
12
loadrunner 脚本优化-参数化方法
13
loadrunner 脚本开发-字符串编码转换
14
loadrunner 脚本开发-web_custom_request函数详细介绍
15
loadrunner 脚本开发-执行操作系统命令
16
loadrunner 脚本优化-关联函数web_reg_save_param()函数详解
17
Loadrunner 脚本开发-利用web_submit_data函数实现POST请求
18
loadrunner 脚本优化-参数化之Parameter List参数取值
19
loadrunner 脚本录制-Protocol Advisor协议分析器的使用
20
Loadrunner 脚本开发-从文件读取数据并参数化
21
loadrunner 脚本录制-录制选项设置HTML-based URL-based Script
22
Loadrunner 脚本开发-利用web_custom_request函数进行接口测试
23
Loadrunner 脚本开发-soap_request函数介绍及WebService接口测试
24
loadrunner 脚本开发-int型变量和字符串的相互转换
25
loadrunner 脚本优化-参数化之场景中的参数化取值
26
Loadrunner脚本优化-参数化之关联MySQL数据库获取数据
27
loadrunner 脚本开发-调用java jar文件远程操作Oracle数据库测试
28
Loadrunner脚本开发-基于HTTP协议的流媒体视频在线播放服务器性能测试
29
loadrunner 运行脚本-命令行运行脚本
30
loadrunner 脚本开发-参数化之将内容保存为参数、参数数组及参数值获取

loadrunner 脚本开发-文件下载

脚本开发-文件下载

by:授客 QQ:1033553122

下载简介

对 HTTP协议来说,无论是下载文件或者请求页面,对客户端来说,都只是发出一个GET请求,并不会记录点击后的“保存”、“另存为操作”。

如下,点击页面中tar.gz压缩包,用工具可以清楚的看到,客户端仅是发起了一个GET请求,请求获取点击的资源。接着服务器返回包含请求资源响应消息

LoadRunner记录了客户端发出的对文件的请求,并能够收到服务器返回的内容。因此,我们要做的额外工作就是“保存”、“另存为”---可以通过关联的方法获取服务器返回的内容,并写入文件保存即可。

注意:这里的要保存的内容为http的消息主体,也就是上述两箭头垂直相交形成区域的内容。

具体实例

如下,访问图示页面,并下载红色方框框选的压缩包

脚本主要由以下四个action组成,其中vuser_init,vuser_end的内容为默认值,未存放录制内容:

vuser_init

download_page

download_file

vuser_end

download_page,download_file的具体代码如下

// 访问下载页面

download_page()

{

web_url("dist",

"URL=http://tsung.erlang-projects.org/dist/",

"Resource=0",

"RecContentType=text/html",

"Referer=",

"Snapshot=t11.inf",

"Mode=HTML",

LAST);

return 0;

}

//录制下载操作

download_file()

{

int file_size; // 文件大小 //fwrite缓冲区大小

long file_handle = NULL; // 文件句柄

// 如果要保存的数据超过1024个字节,使用以下函数设置参数大小,保证参数可容纳要保存文件的大小

web_set_max_html_param_len("10000");

//将响应信息存放到 file_content参数

web_reg_save_param("file_content", "LB=", "RB=", "SEARCH=BODY", LAST);

web_link("idx-tsunami-0.1.1.tar.gz",

"Text=idx-tsunami-0.1.1.tar.gz",

"Snapshot=t12.inf",

LAST);

//获取响应文件大小

file_size = web_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);

if(file_size > 0)

{

//以“二进制+写”的方式打开文件(如下,在d盘根目录下新建idx-tsunami-0.1.1.tar.gz文件

if((file_handle = fopen("d:\\idx-tsunami-0.1.1.tar.gz", "wb")) == NULL)

{

lr_output_message("文件操作失败!");

return -1;

}

//写入文件内容

fwrite(lr_eval_string("{file_content}"), file_size, 1, file_handle);

//关闭文件

fclose(file_handle);

}

return 0;

}

注意:

1.如下,从BODY,即消息主体中查找,不指定左右边界,即查找所有消息主体的内容

web_reg_save_param("file_content", "LB=", "RB=", "SEARCH=BODY", LAST);

2.上述的web_link手工改成如下的web_url也是可以的。

web_url("下载idx-tsunami-0.1.1.tar.gz",

"URL=http://tsung.erlang-projects.org/dist/idx-tsunami-0.1.1.tar.gz",

"Resource=0",

"RecContentType=application/x-gzip",

"Referer=http://tsung.erlang-projects.org/dist/",

"Snapshot=t12.inf",

"Mode=HTML",

LAST);

解说:

1. "URL=http://tsung.erlang-projects.org/dist/idx-tsunami-0.1.1.tar.gz",

此处的URL为指定资源下载地址,通常通过右键资源连接-->属性,可看到,如下图

2."Referer=http://tsung.erlang-projects.org/dist/",

这里的Referer指下载资源所引用的页面,Referer是HTTP header的一部分,当浏览器向web服务器发送请求的时候,一般会带上Referer,告诉服务器我是从哪个页面链接过来的,服务器籍此可以获得一些信息用于处理。

下一篇
举报
领券