5.18 如何下载并保存文件到本地
问题:
如何下载并保存文件到本地?
问题解答:
在进行一个人事代理系统项目开发过程中,因为委托单位人员能够上传和下载电子文件(如:学位照、身份证、护照或者其他Word、Excel、Pdf等格式的电子文件),为了模拟下载的场景,需要编写相关脚本。在HTTP协议中,没有任何一个方法或是动作能够标识“下载文件”这个动作,对HTTP协议来说,无论是下载文件或者请求页面,都只是发出一个GET请求,LoadRunner记录了客户端发出的对文件的请求,并能够收到文件内容。因此,完全可以通过关联的方法,从LoadRunner发出的请求的响应中获取到文件的内容,然后通过LoadRunner的文件操作方法,自行生成文件。您只需要对需存储的文件响应部分内容进行关联,并将这部分信息存储于变量。获得文件内容后,通过fopen,fwrite,fclose函数,就可以将需保存的内容保存成本地文件,这样就完成了文件下载操作。
下面以下载作者在UML软件工程组织上做的一次关于性能测试公开课讲稿为示例,讲述如何完成一个文件的下载过程。因为有好多人不清楚为什么参数化时用这个取值,而不用别的参数。您可以通过借助FlashGet工具或者鼠标右键点击“性能测试实践及其展望”链接查看需要下载文件属性等方式来了解脚本中相应参数的设置,从而完成下载操作。参见FlashGet和鼠标右键文件属性图示,大家可以看到文件下载的地址为“http://www.cnblogs.
com/Files/tester2test/xncssj.pdf”,引用地址为“http://www.cnblogs.com/tester2test/archive/2006
/08/28/487989.html”。
|
|
相应脚本代码:(DownloadFileScript)
#include "web_api.h" Action() |
【脚本分析】
首先,声明了两个变量iflen和lfbody分别存放,被下载文件大小和响应数据内容大小,链接到存放作者讲稿页面,相关脚本如下所示:
int iflen; //文件大小 |
然后,根据设置被下载文件的大小,设置最大长度,通过关联函数将被下载文件http://www.cnblogs.com/Files/tester2test/xncssj.pdf内容存放在fcontent变量,同时获得服务器响应文件下载数据信息大小,关于web_get_int_property函数的使用,您可以参看LoadRunner函数帮助了解相关内容。
//设置最大长度 |
最后,将保存在变量的数据信息一一写入到指定命名文件中,在这里我们依然保存在“c:\性能测试实践及其展望.pdf”文件。相关代码是这样的,如果响应数据信息大小大于0个字节,则以写方式打开文件,如果出错则发出“文件操作失败!”提示信息,否则,将先前保存下载数据信息,写入到该文件,这样就完成了一个下载操作的完整工程。
if(iflen > 0) |
【作者提示】
1. 如果您不清楚如何确定要下载文件的原始链接,可以通过鼠标右键,单击“属性”察看被下载文件的数据源链接地址。
2. 文件操作完成之后,必须要进行释放工作(fclose),否则将会造成内存泄漏的情况。内存泄漏在一、两个用户操作可能后果不是很明显,但在做并发性测试或者持久性测试的时候,内存泄漏结果就会出现内存被逐渐被耗尽,最终导致系统崩溃的严重后果,所以大家一定要注意内存泄漏问题情况的发生。
| 回书目 上一节 下一节 |
|
· 上周拒绝服务攻击(DDo.. · 08年5月各大网上书店及.. · 2008年5月24日软考试题.. · 软件设计师专家临考模.. · 上周网络管理员专家自.. · 网络工程师自测获奖名.. |
· 08年4月各大网上书店及.. · 系统分析师自测获奖名.. · Linux结课考试自测获奖.. · 上周Linux系统命令的使.. · 上周真题冲刺测试获奖.. · 全国计算机等考四级模.. |
|
||||
| · 充电计划之热门IT认证.. · 勇闯IT培训黑色围城 · 如何有效防御SQL注入攻.. · 2008年上半年全国软考.. · 选择适合自己的IT认证 · IPv6协议--拓展网络无.. · 了解统一威胁管理(UTM).. · 调查:十大发现 解秘技.. |
· 技术人求职简历完备手册 · Vista SP1对决XP SP3 · 运营商封堵ADSL共享 中.. · LAMP技术精解 · PHP开发应用手册 · 解析35岁技术人的价值.. · 汶川大地震 IT技术人在.. · SOA 面向服务架构 |
|||
|
||||
| · SQL Server 2008/2005.. · SOA 面向服务架构 · SQL Server 2008/2005.. · iSCSI应用与发展 · RAID——磁盘阵列基础 · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 |
· Apache技术专题 · 国际文档格式标准开战 · 路由器设置与口令恢复 · 打造安全服务器 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 · 了解统一威胁管理(UTM).. |
|||
|
||||
| · iSCSI应用与发展 · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · iSCSI应用与发展 · 三层交换技术专题 · Apache技术专题 |
· RAID——磁盘阵列基础 · 企业数据恢复指南 · 路由器设置与口令恢复 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 · 访问控制列表(ACL)介绍 · PHP开发应用手册 |
|||