下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、北京xx项目的时候,有个对文件系统的性能需求如下:业务场景:在一台服务器上单独部署一个文件系统,用于管理系统操作中产生的图片文件, 客户端会对该文件系统产生上传文件和下载文件的操作,由于在一段时间内操作的用户会很 多,会产生并发操作的情况,需要对上传和下载进行压力测试;文件系统使用c#编写,在服务器上以服务器形式运行;客户端也是c#编丐的winform应用 程序,首先想到的是使用microsoft .net协议开发脚木,录制的效果不好,选择肓接c#编写 脚本;说明:microsoft .net协议的脚木录制起來的脚木比较难看,比较冗长;建议还是新建microsoft .net 协议的脚本后白己
2、根据需要编写;脚木不是自己随意编写,实现操作功能即可的;而是和开发人员沟通,得知客户端是怎么对 文件系统进行操作后,完全模拟客户端中的代码模式编耳;或者可以认为是copy开发人员 的代码后简单修改的:上传脚本/script title/script description :/recorder version : 593/namespace scriptusing fj.rp.entity;using loadrunner;mercury.loadrunner.dotnetprotocoi.replay;using system;syste m. data.common;using syste
3、m0;virtual int action() using system.collectio ns;using system.data.oracleclient;using 口己定义的变量using using system.data;usingpublic partial class vuserclass /remotefloder_l为服务器上保存批次图像的路径;socketlibrary; usingsystem.xml; public参数化吋/localfloder_l是本地事先准备好的批次图像,需耍运行前准备好;直接参数 batcharea 变量的后三位数字; sharepath=&
4、quot;/8/xxx/"batcharea 二 7/ll110:ll:l010:ll:l010:l00:ll:l010:100:1005:l10:l0:100:l005”lreval_stringnewparam:l”);remotefloder_l=sharepath+,scanimage/ 短表 vatarget=_blank href=,file:/put,+batchareah>/put,+batcharea</a>localfloder_l="d:/test/scanimage/fei表”+batcharea;/192.1
5、68.3.28 吋文件系统服务器的地址netfiletransfer_2=(netfiletransfer)(activator.getobject(typeof(socketlibrary.netfiletransfer), ”t卬:192.:l68.3.28:8085/filesewice“);/ 上传本地图像到服务器中;lr.start_transactio n("sca n_put“);files = directory.getfiles(localfloder_l);foreach(string s in files) string name=systemo.path.ge
6、tfilename(s);remotesavefile = remotefloder_l+”"+name;filepath_2=localfloder_l+"/"+name;try把本地需耍上传的单个文件读取到文件流中;ir.starttransactioncreadlocal”);filestream fsl = new filestream(filepath_2,filemode.open,fileaccess.read,fileshare.read); bytearray_2 = new bytefsl.length;fs 1. read (byte ar
7、ray_2,0, byte ar ray_2. le ngth);fsl.close();ir.endransactionc'readlocal", ir.auto);上传文件到服务器指定目录并保存;if(!system.lo.directory.exists(remotefloder_l)syste mo .directory.createdirectory(remotefloder_l); if (file.existsfremotesavefile) file.delete(remotesavefile);catch(excepti onnetfiletransfer_
8、2.sendfilebytes(bytearray_2,remotesavefile);ex)lr.output_message(ex.tostri ng(); netfiletransfer_2=null;returnir.end_transaction(hscan_put蔦 ir.fail); lr.end_transaction(,scan_put,/ ir.auto);0; 二、下载脚木/script title:/seript description :/recorderversion: 593/namespace script using fj.rp.entity;using lo
9、adrunner;using mercury.loadrunner.dotnetprotocol.replay;usingsocketlibrary; using system;using system.collections;usingsystem.data;using system.data.common;using system.data.oracleclient;using system.xml;using systemo;public partial class vuserclass publicvirtual int action() /sharepath和batcharea这两个
10、参数定义了服务器上批次图像保存路径,同时也是下载图像后保存到本地需要用到的路径;在服务器remotefloder_l 路径下保存着从 110101001006100 开始到 110101001006900 共 800 个批次 文件夹测试图像并发下载时,按模拟的用户数百接参数batcharea变量最后三位数字,也就是100这三个字符,参数类型选择unique number,设置指定的步值,也就是每个用户在运行时的取值空间,然示运行过程中虚拟用户就会根据参数化自动取指定 文件夹k的图像卜载,并保存到本地目录卜;sharepath=,7/192.1683.28/xxx/"batcharea
11、=7/ll1101l:10:l0:l:l:l0:l01001110101001005l:l0:l01001006”+lr.eval_string("newparaml");remotefloder_l=sharepath+"scanimage/ 短 表"+batcharea; /remotefloder_2=sharepath+"cutimagel 短表"+batcharea;下载服务器上的所有图像;连接至iremoting月艮务器tcp:/8:8085/fileservice;lr.start_fa nsact
12、ion("getimage");netfiletransfer_l=(netfiletransfer)(activator.getobject(typeof(socketlibrary.netfiletransfer), ,tcp:/8:8085/fileserviceh);把建立连接返回的结果转换成字符串,用來判断连接是否成功;stringretval = netfiletransfer_l.tostring(); 获取该文件路径下的所冇文件;arraylist_l = netfiletransfer_l.getfloderaii(remoteflo
13、der_l);获取remotefloder_l目录下的所有文件放到files中;files=directory.getfiles(remotefloder_l);foreach(string s in files) 服务器上文件的路径string name=system.lo.path.getfilename(s);创建木地文件夹和生成保存的文filepath_l =remotefloder_l+,/,l+name; 件名;localsavepath = md:/testln;localsavepath=localsavepath+batcharea;localsavefile=localsa
14、vepath+,7/h+name;如果本地指定的文件夹不存在,就创建文件夹;try的内容;if( isystem.10.directory.exists( localsavepath)system0 directory.createdirectory(localsavepath);调用netfiletransfer的getfilebytes方法获取指定文件if(bytearray_l!=null)bytearray_l = netfiletransfer_l.getfilebytes(filepath_l);lr.start_transaction(,writelocalimage,'
15、);如果木地的文件li经存在,就删除指定的文件,这个设置时为了避免迭代次数过多的时候,虚拟用八乂重新开始取参数出现文件重复的错误;讦(file.exists(localsavefile)file.delete(localsavefile);写文件到本地中;filestream fs = newfilestream(localsavefile,filemode.createnew,fileaccess.write,fileshare.write);fs.write(bytearray_lqbytearray_lle ngth);fs.close();ir.end_transaction("wri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 股骨颈骨折闭合复位内固定术后护理查房
- 客户投诉处理及解决方案框架参考
- 工程项目精细化管理承诺书4篇范文
- 加强团队合作提升绩效承诺书4篇
- 业务规范管理运营承诺书(8篇)
- 创新科技项目研发保证承诺书(7篇)
- 山东省青岛市李沧、平度、西海岸、胶州市级名校2026年初三下学期一诊模拟英语试题文试卷含解析
- 2026届新疆乌鲁木齐市名校中考英语试题押题密卷(全国新课标II卷)含解析
- 广东省高要市重点中学2026年高中毕业班第二次诊断性检侧(语文试题理)试题含解析
- 河北省唐山市迁安市2026年初三5月月考(英语试题)试卷含解析
- TSG 08-2026 特种设备使用管理规则
- 2026年安徽粮食工程职业学院单招职业技能考试题库附答案详细解析
- 劳务工奖惩制度
- 投资项目《项目建议书》《可性研究报告》等编制服务方案投标文件(技术方案)
- 国开2026年春季《形势与政策》专题测验1-5答案
- 2026离婚协议书标准范文
- 2026四川宜宾发展产城投资有限公司及子公司第一批员工招聘35人考试参考试题及答案解析
- 幼儿园中班语言《春节是个百音盒》课件
- GJB3243A-2021电子元器件表面安装要求
- 过程控制-方康玲主编-课后习题答案
- 通信原理(樊昌信)第4章 信道
评论
0/150
提交评论