仔细琢磨loadrunner的httppost上传文件到服务器

LoadRunner上传附件脚本 这是上传产品图片的一个实例。参看了LoadRunner的Function Reference,这里记录一下上传脚本的实现方式(比较简单),给自己做一个笔记。 int uploadImgStatus = 0; //获取上传产品图ID web_reg_save_param_ex("ParamName=imgRandName", "LB=\"sourceImgPath\":\ 阅读详情

 

环境:loadrunner11,win7家庭版32位

 

最近遇到一个性能测试,需要模拟很多手机客户端调用后台接口,上传图片到服务器。

接口是http get和http post的,http get比较容易对付,loadrunner新建HTTP协议的脚本,录制IE,启动url输入httpget 的url就行了。但是上传文件这招肯定不行了。直接编写loadrunner的post,我没那本事,那个web_custom_request中的BodyBinary我写不出来。所以只能找工具来录制。

 

想了几招,先是尝试用loadrunner使用HTTP协议录制android的模拟器AVD Manager.exe,结果半天没动静;后来在百度的云调试上启动一个模拟器,用loadrunner录制HTTP协议,不出意外的录制了一大堆脚本出来,除了我想要的没有录到以外,啥都有。

参考:http://mtc.baidu.com/mtc/home.php

题外话:如果图省事,百度的这个手机云调试还是不错的,虽然用15分钟就要续一下。

 


印象中firefox有httppost插件,懒得搞了,上网搜搜相关工具吧。于是搜到了:

Author: zyl910的一个httppost工具,C#写的:

http://www.cnblogs.com/zyl910/archive/2012/09/19/TestHttpPost.html

 

拿来看了看:

002.jpg


 

没有图片文件,只有postdata,我要是知道postdata怎么填写,我就不用满世界搜工具了。这个界面中的文件名称是我修改了添加上去的。没法子,只好改造了这个工具,添加了一段代码。


//BEING:这一段的内容是我新加的

 

System.IO.FileInfo f = new FileInfo(textBox1.Text);

int flen = (Int32)f.Length;

byte[] bufPost = new byte[flen];

 

FileStream sFile = new FileStream(textBox1.Text, FileMode.Open);

sFile.Read(bufPost, 0, flen);

 

f = null;

sFile = null;

 

//byte[] bufPost = myEncoding.GetBytes(sPostData);

 

//END:这一段的内容是我新加的

 

一看就明白了,就是将要post的数据从文件中读出,而不是从界面上得到。好像写的不是特别严谨,编码都没管。代码跑了一下,发现上传文件失败了,找开发核对了一下HEADER部分,发现是:Content-Type必须要写成"application/octet-stream",再试试,嘿,运气不错,成功了。

 

于是loadrunner使用HTTP协议录制编译出来的exe文件,录制下来,回放脚本,OK搞定了。

 

 

做到这里,任务就算完成了。继续想想,这样每次上传的文件都是相同的,能否不同呢。那就需要每次在loadrunner中打开一个图片文件,然后转换为web_custom_request的BodyBinary需要的那一大堆ASC串。于是就试了试,结果:

 

Action.c(19): start time:2012-10-25 15:13:10.944

Action.c(35): 8000 bytes read

Action.c(35): 8000 bytes read

Action.c(35): 8000 bytes read

Action.c(35): 8000 bytes read

Action.c(35): 8000 bytes read

Action.c(35): 8000 bytes read

Action.c(35): 6049 bytes read

Action.c(60): Total number of bytes read = 54049

Action.c(69): end time:2012-10-25 15:24:36.924

 

图片:54049字节,也就是53k

生成的结果ASC串:264k

一共运行:2012-10-25 15:24:36.924-2012-10-25 15:13:10.944=11分26秒

这个还没有做参数替换上传动作。

 

反思:想想也是,上传的时候需要asc串,先从文件二进制读出,转换为asc串替换,将来真的执行,还得搞成二进制串才能上传,这个也太作孽了,没法子快的起来。

 

打开文件转码再上传,这个方案比较傻,还是在代码执行之前就得到BodyBinary会更快一些,但是有点不服气,有没有搞错loadrunner这个脚本是c写的,而且是编译执行的,居然这么慢,不爽,改写一个vbs的试试。

 

花了点时间,写了一个vbs的脚本,对图片进行转换,faint,居然不到一秒就搞定了。Vbs真是爱死你了,毕竟在wins下面混,vbs还是非常给力的,只需要一个编辑器就行了。

 

以后可以图省事,不用录制了,直接徒手写这个HTTP POST了,不过一张53k的图片,需要生成264k的字符串,loadrunner的脚本写出来估计满眼都是这堆字符串了,要是图片上兆的话,不可想象,非得把那堆asc串写入文件中,临到要用再读出来了。

 

 

文中相关工具下载:

1.      loadrunner读图片文件转换为post内容

http://download.youkuaiyun.com/detail/testingba/4686466

这是一个loadrunner脚本,示例如何读出一个图片文件,转换生成一个文本文件,文件的内容是loadrunner httppost上传文件的BodyBinary内容

 

2. httppost相关工具

 

http://download.youkuaiyun.com/detail/testingba/4686488

这个压缩包中包括:

1. testhttppost.exe:http post上传文件工具;

2. TestHttpPost: 源码;

 

以上内容改编自:Author: zyl910

http://www.cnblogs.com/zyl910/archive/2012/09/19/TestHttpPost.html

 

3.lr_post.txt: 录制的loadrunnerhttp post上传文件到服务器的示例;

4. getjpg.vbs: 读出一个图片文件,将其内容转换为loadrunner httppost的BodyBinary内容,这是用来比较loadrunner脚本速度的:

 

 



LoadRunner在性能测试中录制上传本地文件脚本的步骤解析 LoadRunner是惠普开发的一款性能测试工具,广泛应用于IT领域,用于评估系统、网络和对象在重负载下的运行情况。本章将对LoadRunner的基本功能进行概述,为读者提供一个初步的理解,以便更好地掌握后续章节中涉及的脚本录制、测试执行和结果分析。Virtual User Generator(VuGen)是LoadRunner的一个组件,专门用于录制、编辑和增强虚拟用户脚本。启动VuGen后,用户会看到一个包含多个标签和视图的界面。界面中心是脚本视图,这是编辑和查看脚本代码的地方。 阅读详情

相关推荐

Loadrunner录制上传本地文件脚本

利用LoadRrunner工具录制上传本地文件脚本,LR11和LR12都可借用

【Loadrunner】解决上传附件请求问题

案例1:在上传其他参数正确的前提下,多次回放,无法将包上传成功,通过与开发协同定位,发现上传路径存在问题,经过多次论证,需将本地路径"D:\web.zip"正则表达式转为“D:\\web.zip”,才能上传成功  web_submit_data("SaveStudentFile",      "Action=http://{IP}/UploadFile/SaveStudentFile", 

深圳-雄少(XZee) 3613

LoadRunner测试HTTP协议下载文件

LoadRunner测试HTTP协议下载文件,内有注释,已经过长时间测试。

web_submit_data函数上传图片

web_submit_data函数上传图片 通常loadrunner上传下载文件脚本不能通过录制来实现,录制上传脚本回放过程会出问题,主要原因在于上传文件的路径,了解了上传文件的原理之后,可以手工完成无法录制的脚本,以下为上传图片实例: web_submit_data("CropZoomImgController.do", //请求路径 。 "Action=http://10.1...

weixin_30576827的博客 433

loadrunner读图片文件转换为post内容

这是一个loadrunner脚本,示例如何读出一个图片文件,转换生成一个文本文件,文件的内容是loadrunner httppost上传文件的BodyBinary内容

LR上传本地文件脚本

LR上传本地文件脚本

loadrunner录制上传图片

在录制回放过程中,图片地址需要手动完善地址路径,注意加上转义字符。如果不想加上路径的话,可以把图片放在项目所在的文件夹下。两种方式都可以完成图片上传操作。

mrchennn的博客 1237

什么是无人机巡检?如何实现无人机自动巡检?

复亚智能的无人机自动巡检系统通过高度自动化的技术,实现了无人机的高效巡检作业。无人机自动机场支持无人机的自动起降和电池更换,自动飞行算法确保无人机在复杂环境中的精准飞行和拍摄,而云端识别诊断和AI感知算法平台则实现图像的实时传输和智能分析。复亚智能,作为无人机技术的创新者和推动者,致力于开发先进的无人机自动巡检解决方案,助力各行各业实现智能化、自动化的巡检工作,引领智能巡检的未来。利用人工智能和机器学习算法,无人机可以被训练来识别特定的模式和异常,如结构损坏、热泄漏等,从而提高巡检的准确性和效率。

foiadrone的博客 2842

LoadRunner的上传及下载脚本

LoadRunner的上传及下载脚本 脚本录制 在LR中,可以用自带的FTP协议去录制FTP工具的上传及下载。如下图所示: 1、点击Creat/Edit Scripts 2、选择FTP协议 出现如下图界面。 此处,我们不选择录制脚本,选择自己手动写脚本,点击“取消”   LR中的FTP相关函数 在LR帮助文档中,我们可以看到很多与FTP操作有关的函数。此处,我们需

南十字星 1050

PMOS过压保护电路设计与仿真优化策略

本文深入探讨PMOS过压保护电路(OVP)的设计与仿真优化策略,详细解析PMOS管选型、稳压管特性及三极管配置等关键要素。通过Proteus仿真案例揭示典型设计误区,并提供响应速度提升、抗干扰设计等进阶优化方案,助力工程师实现高可靠性的电源保护系统设计。

weixin_42620340的博客 438

CODESYS Softmotion(一)功能介绍

一、CODESYS SoftMotion RTE SL产品 1.1 CODESYS Runtime SL 产品家族介绍 目前支持的主流厂商的硬件产品,让部署在上面的成为实时设备。 对于Windows系统,根据需求选择对应的Runtime: RTE极大的提高了实时性,适合进行运动控制,同时RTE还支持了多个主从站协议: 还可以选择可选的功能(Single License): RTE对硬件和系统有要求,如果你需要硬件功能,那么网卡会有最低要求。 1.2 RTE的下载和安装 在官网http://codes

Fishfishfishfishcat 2万+

使用Loadrunner进行文件的上传和下载

最近使用loadrunner中需要录制文件的上传和下载,上传功能模块利用录制可以直接实现,下载无法实现,在网上找到了一段代码,自己动手试验了下,发现没有用 辛苦找到的,还是记录下吧 (1)LoadRunner上传文件            web_submit_data("importStudent.do",                    "Action=https://

jnlovewwt1983的专栏 1万+

用树莓派Pico低成本更新USB-C PD控制器固件实战指南

固件更新是嵌入式系统开发与维护中的核心环节,它直接决定了硬件设备的功能、性能与兼容性。其原理通常是通过特定的通信接口(如SWD、JTAG、UART或USB)与设备内部的Bootloader建立连接,将新的程序代码安全写入非易失性存储器。在USB Power Delivery(PD)和Type-C生态中,固件更新技术尤为重要,它能修复协议握手Bug、适配新设备并提升供电策略的灵活性。本文聚焦于一个典型的工程实践场景:如何利用广泛普及且成本极低的树莓派Pico开发板,作为USB-C协议到I²C协议的转换桥,实现

weixin_27869497的博客 452

Loadrunner之文件的上传(八)

老猪提供: https://mp.weixin.qq.com/s?__biz=MzIwOTMzNDEwNw==&mid=100000013&idx=1&sn=624f5bc74e2f695a7d35e39bd07740ad&scene=1&srcid=0905ffwvQLmHbpsGR4aZSi3h&key=7b81aac53bd2393...

alexlau2016的博客 606

SpringBoot实战(二十八)集成 Collabora Online 实现在线编辑

SpringBoot实战(二十八)集成 Collabora Online 实现在线编辑

ACGkaka的博客 6979

C# WPF上位机实战:从零开发空压机监控系统(含实时监控+故障预警+数据追溯)

在工业生产场景中,空压机作为核心动力设备,常面临这些痛点:压力/温度异常导致停机、油耗超标未及时发现、设备故障追溯无数据支撑、人工巡检效率低且易遗漏。而基于C# WPF开发的空压机监控系统,能通过实时采集设备运行参数、智能分析运行状态、联动故障预警,实现“状态监控-异常告警-数据追溯-远程管控”全流程自动化,完美解决传统管理模式的弊端。今天就带大家落地这套空压机监控系统,基于C# + .NET 8 + WPF + Modbus TCP/RTU协议,整合压力、温度、油耗、运行时长等核心参数监控,搭配WPF的数

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1102

loadrunner 关于附件上传的应用

关于附件上传的应用" title="loadrunner 关于附件上传的应用" style="margin:0px; padding:0px; border:0px; list-style:none"> 1、首先确定上传的页面,然后查看源文 2、从源文件获取上传的信息   web_submit_data("uploadFile.do",   "Action=http://

meimei04的博客 926

【深度解析】解决 NVIDIA 显卡“掉卡”与 Xid 79 错误:开启持久化模式 (Persistence Mode)

【深度解析】解决 NVIDIA 显卡“掉卡”与 Xid 79 错误:开启持久化模式 (Persistence Mode)

Edward的博客 854

loadrunner post接口 from data格式的文件上传

测试

滴水穿石 2171

Quuppa 如何引领蓝牙 ® 定位服务的全新发展方向

我们最优质的客户,是那些对其他实时定位系统(RTLS)的承诺感到失望、转而寻求 “能覆盖全业务场景的更广泛赋能技术” 的客户 —— 前文提到的消防车制造商就是典型案例:他们尝试并通过 Quuppa 的蓝牙方案取得了成功。我们希望业务合作伙伴(如系统集成商、解决方案提供商)能充分利用 Quuppa 智能定位系统的功能,为客户提供专属解决方案:无论是追踪微型标签、实现未来移动设备的 AoD 功能,还是基于 RSSI 的简单信标(信标作为物联网网关),这些功能都能让同一套 Quuppa 系统支持广泛的用例。

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 831

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

loadrunner之测试文件上传接口

记录下今天写的文件上传接口测试------------------ 由于浏览器的原因,录制不了脚本,只好自己琢磨了下怎样手写脚本实现~ 首先通过抓包,获取了URL、参数、Content-Type等等信息,接下来就可以根据获取的数据在loadrunner中敲代码啦! Action { web_reg_save_param("code", "LB={\"code\":", "RB=,\"message\"", "Search=All", LAST); lr_start_tra

weixin_45663954的博客 794

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

使用LoadRunner上传及下载文件

<br />(1)LoadRunner上传文件<br /> <br />         web_submit_data("importStudent.do",<br />                   "Action=https://testserver/console/importStudent.do",<br />                   "Method=POST",<br />                   "EncType=multipart/form-data",<br

在云端 8486

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

LoadRunner11实操压力测试-一步一步慢慢来

录制脚本、修改脚本、运行脚本、测试结果

Summer_Hanson的博客 4万+

使用Loadrunner进行文件的上传及代码测试

Action() {      web_reg_save_param("272E734824D4989099FEF2CE7CE28F86",         "LB/IC=jsessionid=",         "RB/IC=; Path=/busengexp/; ",   "Ord=1", LAST);     lr_rendezvous("jhd"); l

闽南土著 2266

LoadRunner性能测试-上传文件脚本

LR上传文件脚本详解脚本char *fr(char *filename){ longupfile ; //定义文件句柄 intcount ; //定于文件长度 intnFileLen; //定义文件长度 char*buffer; upfile= fopen(filename,"rb"); //以只读方式打开二进制文件,将up...

weixin_33859231的博客 1081

LoadRunner 脚本实现本地文件上传到服务器

来至:gotesting软件测试联盟论坛   http://www.78test.com 有一些系统具有文件上传下发功能,为了测试系统的性能,需要写一些脚本,实现文件上传到服务器。 下面是脚本中的主要部分: Action() {         web_url("upload1.jsp",                  "URL=

测试人生 963
上一篇: 命令控制qq自动申请远程控制_代码详解
下一篇: HTTP接口和UDP接口流量差异比较
Testingba
博客等级 码龄15年 128粉丝 86原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Testingba

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值