當前位置:首頁 » 文件傳輸 » 文件上傳壓力測試
擴展閱讀
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上傳第二個文件.多多嘗試一下吧.