欢迎来到天天文库
浏览记录
ID:47845837
大小:88.00 KB
页数:3页
时间:2019-11-26
《loadrunner脚本实例——microsoftnet协议》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、北京XX项目的时候,有个对文件系统的性能需求如下:业务场景:在一台服务器上单独部署一个文件系统,用于管理系统操作中产生的图片文件,客户端会对该文件系统产生上传文件和下载文件的操作,由于在一段时间内操作的用户会很多,会产生并发操作的情况,需要对上传和下载进行压力测试;文件系统使用c#编写,在服务器上以服务器形式运行;客户端也是C#编丐的winform应用程序,首先想到的是使用microsoft.Net协议开发脚木,录制的效果不好,选择肓接C#编写脚本;说明:microsoft.net协议的脚木录制起來的脚木比较难看,比较冗长;建议
2、还是新建microsoft.net协议的脚本后白己根据需要编写;脚木不是自己随意编写,实现操作功能即可的;而是和开发人员沟通,得知客户端是怎么对文件系统进行操作后,完全模拟客户端中的代码模式编耳;或者可以认为是copy开发人员的代码后简单修改的:上传脚本////ScriptTitle//ScriptDescription://////RecorderVersion:593//namespaceScript{usingFJ.RP.Entity;usingLoadRunner;Mercury.LoadRunner.DotNetPro
3、tocoI.Replay;usingSystem;System.Data.Common;usingSystem」0;virtualintAction(){usingSystem.Collections;usingSystem.Data.OracleClient;using〃口己定义的变量usingusingSystem.Data;usingpublicpartialclassVuserClass{//RemoteFloder_l为服务器上保存批次图像的路径;SocketLibrary;usingSystem.Xml;public
4、〃参数化吋//LocalFloder_l是本地事先准备好的批次图像,需耍运行前准备好;直接参数batchArea变量的后三位数字;sharePath="////192.168.3.28//xxx//";batchArea二7/ll〃110:L〃l:L010:L〃l:L010:L00:L〃l:L010:100:1005〃:L10:L0:100:L005”lr・eval_string「{NewParam:l}”);RemoteFloder_l=sharePath+,,Scanimage//短表vatarget=_blankhref=
5、,,file:////put,+batchAreaH>//put,,+batchArea;LocalFloder_l="D://test//Scanimage//fei表”+batchArea;//192.168.3.28吋文件系统服务器的地址NetFileTransfer_2=((NetFileTransfer)(Activator.GetObject(typeof(SocketLibrary.NetFileTransfer),”t卬:〃192.:L68.3.28:8085/FileSewice“)));//上传本地图
6、像到服务器中;lr.start_transaction("scan_put“);Files=Directory.GetFiles(@LocalFloder_l);foreach(stringsinFiles){stringname=System」O.Path.GetFileName(s);RemoteSavefile=RemoteFloder_l+”〃"+name;filePath_2=LocalFloder_l+"//"+name;try{〃把本地需耍上传的单个文件读取到文件流中;Ir.start—transactionCre
7、adlocal”);FileStreamfsl=newFileStream(filePath_2,FileMode.Open,FileAccess.Read,FileShare.Read);ByteArray_2=newbyte[fsl.Length];fs1.Read(ByteArray_2,0,ByteArray_2.Length);fsl.Close();Ir.end^ransactionC'readlocal",Ir.AUTO);〃上传文件到服务器指定目录并保存;if(!System.lO.Directory.Exist
8、s(@RemoteFloder_l)){System」O.Directory.CreateDirectory(@RemoteFloder_l);}if(File.ExistsfRemoteSavefile))File.Delete(RemoteSavefile)
此文档下载收益归作者所有