当前位置:首页 » 文件传输 » 文件上传压力测试
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

文件上传压力测试

发布时间: 2022-01-23 10:23:46

❶ jmeter 并发上传不同的文件

录制脚本以后 选择线程数还有发生时间 里面有选项

❷ 如何用apache ab进行文件上传压力测试

Apache附带的ab工具(本机使用的PHP环境是WAMP集成环境,ab工具位于D:wampinapacheApache2.2.21in)非常容易使用,ab可以直接在Web服务器本地发起测试请求,这至关重要,因为有些时候我们需要测试的仅仅是服务器的处理性能,并不想掺杂着网络传输时间的影响。ab进行一切测试的本质都是基于HTTP的,所以可以说ab对于Web服务器软件的黑盒性能测试,获得的一切数据和计算结果,都是可以通过HTTP来解释的。



测试本机是否正确安装ab工具,在power shell想将当前目录定位到bin,输入 .ab –V 命令,如果安装正确,则会将其版本信息打印出来。


PSD:wampinapacheApache2.2.21in>.ab-V
ThisisApacheBench,Version2.3<$Revision:655654$>
Copyright1996AdamTwiss,ZeusTechnologyLtd,http://www.zeustech
,<ahref="http://www.apache.org/">http://www.apache.org/</a>


好了,一切就绪,下面提供一个压力测试的实例:


输入命令 PS

D:wampinapacheApache2.2.21in>.ab-n1000-c10http://localhost/index.php
ThisisApacheBench,Version2.3<$Revision:655654$>
Copyright1996AdamTwiss,ZeusTechnologyLtd,http://www.zeustech.net/
,http://www.apache.org/

Benchmarkinglocalhost(bepatient)
Completed100requests
Completed200requests
Completed300requests
Completed400requests
Completed500requests
Completed600requests
Completed700requests
Completed800requests
Completed900requests
Completed1000requests
Finished1000requests


ServerSoftware:Apache/2.2.21
ServerHostname:localhost
ServerPort:80

DocumentPath:/index.php
DocumentLength:211bytes

ConcurrencyLevel:10
Timetakenfortests:0.496seconds
Completerequests:1000
Failedrequests:0
Writeerrors:0
Non-2xxresponses:1000
Totaltransferred:400000bytes
HTMLtransferred:211000bytes
Requestspersecond:2015.93[#/sec](mean)
Timeperrequest:4.960[ms](mean)
Timeperrequest:0.496[ms](mean,acrossallconcurrentrequests)
Transferrate:787.47[Kbytes/sec]received

ConnectionTimes(ms)
minmean[+/-sd]medianmax
Connect:000.401
Processing:251.1412
Waiting:241.1412
Total:251.1512

(ms)
50%5
66%5
75%5
80%6
90%6
95%7
98%8
99%9
100%12(longestrequest)


下面开始解析这条命令语句:启动ab,并出入三个参数(PS D:wampinapacheApache2.2.21in> .ab -n1000 -c10 http://localhost/index.php )


-n1000 表示请求总数为1000


-c10 表示并发用户数为10


http://localhost/index.php 表示这写请求的目标URL



测试结果也一目了然,测试出的吞吐率为:Requests per second: 2015.93 [#/sec] (mean) 初次之外还有其他一些信息。


Server Software 表示被测试的Web服务器软件名称


Server Hostname 表示请求的URL主机名


Server Port 表示被测试的Web服务器软件的监听端口


Document Path 表示请求的URL中的根绝对路径,通过该文件的后缀名,我们一般可以了解该请求的类型


Document Length 表示HTTP响应数据的正文长度


Concurrency Level 表示并发用户数,这是我们设置的参数之一


Time taken for tests 表示所有这些请求被处理完成所花费的总时间


Complete requests 表示总请求数量,这是我们设置的参数之一


Failed requests 表示失败的请求数量,这里的失败是指请求在连接服务器、发送数据等环节发生异常,以及无响应后超时的情况。如果接收到的HTTP响应数据的头信息中含有2XX以外的状态码,则会在测试结果中显示另一个名为 “Non-2xx responses”的统计项,用于统计这部分请求数,这些请求并不算在失败的请求中。


Total transferred 表示所有请求的响应数据长度总和,包括每个HTTP响应数据的头信息和正文数据的长度。注意这里不包括HTTP请求数据的长度,仅仅为web服务器流向用户PC的应用层数据总长度。


HTML transferred 表示所有请求的响应数据中正文数据的总和,也就是减去了Total transferred中HTTP响应数据中的头信息的长度。


Requests per second 吞吐率,计算公式:Complete requests / Time taken for tests


Time per request 用户平均请求等待时间,计算公式:Time token for tests/(Complete requests/Concurrency Level)


Time per requet(across all concurrent request) 服务器平均请求等待时间,计算公式:Time taken for tests/Complete requests,正好是吞吐率的倒数。也可以这么统计:Time per request/Concurrency Level


Transfer rate 表示这些请求在单位时间内从服务器获取的数据长度,计算公式:Total trnasferred/ Time taken for tests,这个统计很好的说明服务器的处理能力达到极限时,其出口宽带的需求量。


Percentage of requests served within a certain time(ms) 这部分数据用于描述每个请求处理时间的分布情况,比如以上测试,80%的请求处理时间都不超过6ms,这个处理时间是指前面的Time per request,即对于单个用户而言,平均每个请求的处理时间。


未完待续。。。

❸ 超大文件上传-如何上传文件-大文件上传如何实现

大文件可以切片上传,将blob进行切片。然后用ajax提交。每个片段提交以后做状态记录,如果没有上传或者上传失败的放到队列中,这样方便做断点上传。

❹ 如何实现自动化测试中的文件上传

问题
在各式各样的网站中,上传文件是非常普遍的功能,但是当您试图用自动化的方式来实现文件上传时,往往会在处理浏览器的文件浏览窗口时出错,因为这个文件浏览窗口是自动化框架无法处理的。
您可能会考虑借助于第三方的工具,比如 AutoIt 来处理这个窗口,虽然短期之内您可以解决这个问题,但是从长远来看,您的自动化测试将会严重依赖于某个特定的环境(比如AutoIt就仅仅支持Windows)。
Selenium的实现方案
通过一些额外的配置,Selenium可以让浏览器在执行的时候直接获取文件的完整路径,而无需弹出文件浏览窗口,让用户来进行选择。下面就让我们来看一个用Ruby写的例子。
首先让我们导入一些必要的库,比如(selenium-webdriver来驱动浏览器,rspec/expectations和RSpec::Matchers来做断言),接着是重点,实现自动化上传的代码来啦:
run do
filename = 'some-file.txt'
file = File.join(Dir.pwd, filename)
@driver.get 'http://the-internet.herokuapp.com/upload'
@driver.find_element(id: 'file-upload').send_keys file
@driver.find_element(id: 'file-submit').click
uploaded_file = @driver.find_element(id: 'uploaded-files').text
expect(uploaded_file).to eql filename
end
下面来讲解一下这段代码是如何工作的,首先我们假设文件就和测试脚本在一个目录,因此将文件名filename和当前路径拼起来,就得到了文件的完整路径file,接着打开浏览器,进入上传页面,直接将这个完整路径赋值给input[type=file]控件,提交表单即可。最后,我们从页面上获取文件名,和原始文件名进行比较,以确认上传是否成功。
是不是超简单,更重要的是,这段代码是浏览器无关的,我们在Firefox、Chrome、Safari和IE8以上各个版本均测试通过!
SWATHub的实现方案
如果您连代码都不想写,那么SWATHub可以满足您的需求,首先我们来导入这个upload页面,如下图所示:

接着在流程编辑器中,只需要将Upload操作拖入,并且把上传文件的完整路径设置为参数即可,是不是完全不费吹灰之力呢。

最后,我们可以再添加一个画面自动验证的系统操作,进行断言。

❺ postman怎么测试上传文件

如果只有文件上传一个条件,可以在post请求的body里面选择binary.
如果还有其他条件可以这样:选择form_data,将所有参数通过键值对的形式传递,其中文件一列,点击text后面的箭头,选择file.就可以了.
如果解决了你的问题,请采纳,谢谢.

❻ loadrunner 能否测试文件的上传、下载速度,怎么测试,该用什么协议,大家帮帮忙

协议可以是HTTP,关键你要把上传、下载分成两个transaction,每一个transaction都要有类似text check的检查机制,保证“上传,下载” 完成,这样就是检查两个transaction的response time了,如果是做多用户的stress的话,建议参数化,避免同名文件。

❼ 使用loadrunner 进行并发测试时,该如何测试上传文件文件怎么准备又如何进行参数化呢

nner的。
"替换新参数",里面有些选项(只选其中两个讲),你要知道选择后会发生什么变化。
假如要用2个用户U001,U002登录网站,设2个vuser压一次举例。
Sequential:指顺序地向Vuser分配数据。开始运行时,两个vuser,都用U001这个帐号登录。如果压二次,第二次两个vuser选择U002.
Unique: 为每一个Vuser的参数分配一个唯一的顺序值。开始运行时,两个vuser会分别用U001,U002登录.
如果你觉得抽象,自已想法验证一下是不是两个用户都成功登录.
初学不要用10个用户来做,2*2*2(2用户,2vuser,2次)可以让自已思路清晰一点。

❽ 并发上传文件和串行上传文件的效率为什么差不多

说实话 从软件或代码角度 没辙 都是长连接 逃不掉的
只能从系统设计上去考虑,大致上会有以下这两种思路(基本上是都用的):
1、对于所有的上传的文件,根据随机生成的名称或code取hash用策略取模,分服务器存/取文件,保证不触及io瓶颈,内部文件同步策略自己考虑
2、对所有请求,分pop点分发,根据用户的物理地址选择相应较近的pop点处理请求(当前pop请求已满则顺延至下一pop点,依次类推)

❾ 文件上传时如何判断文件大小是否超过限定值 - 技术问答

有两种方式1. 设置 php.ini 中的 upload_max_filesize 值, 如果文件大小超过这个值, PHP生成上传文件错误 UPLOAD_ERR_INI_SIZE ($_FILES[\'xxx\'][\'error\']);2. 在from中添加 [i] 字段, 如果文件大小超过这个值, PHP生成上传文件错误 UPLOAD_ERR_FORM_SIZEMAX_FILE_SIZE 的值只是对浏览器的一个建议,实际上它可以被简单的绕过。因此不要把对浏览器的限制寄希望于该值。实际上,PHP 设置中的上传文件最大值,是不会失效的。但是最好还是在表单中加上 MAX_FILE_SIZE,因为它可以避免用户在花时间等待上传大文件之后才发现该文件太大了的麻烦。

❿ 用postman测试文件上传接口参数怎么定

建议你参考我之前回答过的一个问题,我注意到你的变量名是:files,所以你上传的其实应该是多个文件.你可以参考我的回答,用files[0].file上传第一个文件,用files[1].file上传第二个文件.多多尝试一下吧.