0

    如何下载并保存文件到本地.pdf

    2023.06.05 | admin | 194次围观

    《软件性能测试与软件性能测试与软件性能测试与软件性能测试与LoadRunner实战实战实战实战》》书籍样稿书籍样稿书籍样稿书籍样稿作者作者作者作者博客博客博客博客:作者作者作者作者::wi**soft@163.com邮箱邮箱邮箱邮箱::tony.yuy@gmail.com网上订购地址:《软件性能测试与软件性能测试与软件性能测试与软件性能测试与LoadRunner实战实战实战实战》》书籍样稿书籍样稿书籍样稿书籍样稿作者作者作者作者博客博客博客博客:作者作者作者作者::win**oft@163.com邮箱邮箱邮箱邮箱::tony.yuy@gmail.com如何如何如何如何下载并保存文件到本地下载并保存文件到本地下载并保存文件到本地下载并保存文件到本地?问题问题问题问题:如何下载并保存文件到本地?问题解答问题解答问题解答问题解答:在进行一个人事代理系统项目开发过程中,因为委托单位人员能够上传和下载电子文件(如:学位照、身份证、护照或者其他Word、Excel、Pdf等格式的电子文件),为了模拟下载的场景,需要编写相关脚本。在HTTP协议中,没有任何一个方法或是动作能够标识“下载文件”这个动作,对HTTP协议来说,无论是下载文件或者请求页面,都只是发出一个GET请求,LoadRunner记录了客户端发出的对文件的请求,并能够收到文件内容。

    因此,完全可以通过关联的方法,从LoadRunner发出的请求的响应中获取到文件的内容,然后通过LoadRunner的文件操作方法,自行生成文件。您只需要对需存储的文件响应部分内容进行关联,并将这部分信息存储于变量。获得文件内容后,通过fopen,fwrite,fclose函数,就可以将需保存的内容保存成本地文件,这样就完成了文件下载操作。下面以下载作者在UML软件工程组织上做的一次关于性能测试公开课讲稿为示例,讲述如何完成一个文件的下载过程。因为有好多人不清楚为什么参数化时用这个取值,而不用别的参数。您可以通过借助FlashGet工具或者鼠标右键点击“性能测试实践及其展望”链接查看需要下载文件属性等方式来了解脚本中相应参数的设置,从而完成下载操作。参见FlashGet和鼠标右键文件属性图示,大家可以看到文件下载的地址为“”,引用地址为“”。《软件性能测试与软件性能测试与软件性能测试与软件性能测试与LoadRunner实战实战实战实战》》书籍样稿书籍样稿书籍样稿书籍样稿作者作者作者作者博客博客博客博客:作者作者作者作者::win_s**t@163.com邮箱邮箱邮箱邮箱:《软件性能测试与软件性能测试与软件性能测试与软件性能测试与LoadRunner实战实战实战实战》》书籍样稿书籍样稿书籍样稿书籍样稿作者作者作者作者博客博客博客博客:作者作者作者作者::win_sof**163.com邮箱邮箱邮箱邮箱::tony.yuy@gmail.com相应脚本相应脚本相应脚本相应脚本代码代码代码代码:#include"web_api.h"Action()intiflen;//文件大小longlfbody;//响应数据内容大小web_url("487989.html","URL=http://www.cnblogs.com/tester2test/archive/2006/08/28/487989.html","Resource=0","RecContentType=text/html","Referer=","Snapshot=t2.inf","Mode=HTML",EXTRARES,"Url=http://www.vqq.com/vqq_inset.js?isMin=0&place=RB&Css=2&RoomName=5rWL6K+V6ICF5a625Zut6K665Z2b&encode=1&isTime=0&width=350&height=240&everypage=0",ENDITEM,"Url=http://www.vqq.com/image/chat2.gif",ENDITEM,LAST);//设置最大长度web_set_max_html_param_len("10000");//将响应信息存放到fcontent变量web_reg_save_param("fcontent","LB=","RB=","SEARCH=BODY",LAST);web_url("下载页面","URL=http://www.cnblogs.com/Files/tester2test/xncssj.pdf","Resource=0","RecContentType=text/html","Referer=http://www.cnblogs.com/tester2test/archive/2006/08/28/487989.html","Snapshot=t3.inf","Mode=HTML",LAST);//获取响应大小iflenweb_get_int_property(HTTP_INFO_DOWNLOAD_SIZE);if(iflen//以写方式打开文件if((lfbodyfopen("c:\\性能测试实践及其展望.pdf","wb"))lr_output_message("文件操作失败!");return-1;//写入文件内容fwrite(lr_eval_string("{fcontent}"),iflen,《软件性能测试与软件性能测试与软件性能测试与软件性能测试与LoadRunner实战实战实战实战》》书籍样稿书籍样稿书籍样稿书籍样稿作者作者作者作者博客博客博客博客:作者作者作者作者::win_soft@**3.com邮箱邮箱邮箱邮箱::tony.yuy@gmail.com//关闭文件fclose(lfbody);【脚本分析脚本分析脚本分析脚本分析】首先,声明了两个变量iflen和lfbody分别存放js下载文件保存到本地,被下载文件大小和响应数据内容大小,链接到存放作者讲稿页面,相关脚本如下所示:intiflen;//文件大小longlfbody;//响应数据内容大小web_url("487989.html","URL=http://www.cnblogs.com/tester2test/archive/2006/08/28/487989.html","Resource=0", "RecContentType=text/html", "Referer=", "Snapshot=t2.inf", "Mode=HTML", EXTRARES, "Url=http://www.vqq.com/vqq_inset.js?isMin=0&place=RB&Css=2&RoomName= 5rWL6K+V6ICF5a625Zut6K665Z2b&encode=1&isTime=0&width=350&height= 240&everypage=0", ENDITEM, "Url=http://www.vqq.com/image/chat2.gif", ENDITEM, LAST); 然后,根据设置被下载文件的大小,设置最大长度,通过关联函数将被下载文件 内容存放在fcontent 变量,同时获得服务器 响应文件下载数据信息大小,关于web_get_int_property 函数的使用,您可以参看LoadRunner 函数帮助了解相关内容。

    //设置最大长度 web_set_max_html_param_len("10000"); //将响应信息存放到fcontent 变量 web_reg_save_param("fcontent", "LB=", "RB=", "SEARCH=BODY", LAST); web_url("下载页面", "URL=http://www.cnblogs.com/Files/tester2test/xncssj.pdf", "Resource=0", "RecContentType=text/html", "Referer=http://www.cnblogs.com/tester2test/archive/2006/08/28/487989.html", "Snapshot=t3.inf", "Mode=HTML", LAST); //获取响应大小 iflen 《软件性能测试与软件性能测试与 软件性能测试与 软件性能测试与LoadRunner 实战 实战 实战 实战》 》书籍样稿书籍样稿 书籍样稿 书籍样稿 作者 作者 作者 作者博客 博客 博客 博客: 作者作者 作者 作者: :win_soft@163.com邮箱 邮箱 邮箱 邮箱: :tony.yuy@gmail.com最后,将保存在变量的数据信息一一写入到指定命名文件中,在这里我们依然保存在 “c:\性能测试实践及其展望.pdf”文件。

    相关代码是这样的,如果响应数据信息大小大于 个字节,则以写方式打开文件js下载文件保存到本地,如果出错则发出“文件操作失败!”提示信息,否则,将先前保存下载数据信息,写入到该文件,这样就完成了一个下载操作的完整工程。 if(iflen //以写方式打开文件if((lfbody fopen("c:\\性能测试实践及其展望.pdf","wb")) lr_output_message("文件操作失败!");return -1; //写入文件内容fwrite(lr_eval_string("{fcontent}"), iflen, lfbody);//关闭文件 fclose(lfbody); 【作者提示作者提示 作者提示 作者提示】 如果您不清楚如何确定要下载文件的原始链接,可以通过鼠标右键,单击“属性”察看被下载文件的数据源链接地址。 文件操作完成之后,必须要进行释放工作(fclose),否则将会造成内存泄漏的情况。内存泄漏在一、两个用户操作可能后果不是很明显,但在做并发性测试或者持久性测试的 时候,内存泄漏结果就会出现内存被逐渐被耗尽,最终导致系统崩溃的严重后果,所以 大家一定要注意内存泄漏问题情况的发生。

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论