利用JMeter測試Tornado的多執行緒

2021-10-02 03:04:42 字數 2768 閱讀 1803

我們將在下面的章節中學習如何使用jmeter,以tornado的多執行緒為例。

我們將會以tornado的多執行緒為例,描述如何使用jmeter。測試的tornado多執行緒的python**如下:

# 定義埠為9090

define(

"port"

, default=

9090

,help

="run on the given port"

,type

=int

)# 單執行緒測試

class

sanyahellohandler

(tornado.web.requesthandler)

:# get 函式

defget

(self)

: time.sleep(

0.5)

self.write(

'hello from sanya!'

)# 多執行緒測試

class

shanghaihellohandler

(tornado.web.requesthandler)

: executor = threadpoolexecutor(4)

@gen.coroutine

defget(self)

: result =

yield self.doing(

) self.write(result)

# 使用tornado 執行緒池

@run_on_executor

defdoing

(self)

: time.sleep(

0.5)

return

'hello from shanghai!'

# 主函式

defserver()

:# 開啟tornado服務

tornado.options.parse_command_line(

) handlers=

[(r'/sanya'

, sanyahellohandler)

,(r'/shanghai'

, shanghaihellohandler)],

# 網頁路徑控制

)對上面的程式做個簡單說麵:

右擊選擇add,選擇threads(users),再選擇thread group,填寫資訊如下:

填寫thread group的名稱為「tornado單執行緒測試」,「number of threads」為20,表示模擬20個使用者,「ramp-up period」為1,表示1秒內傳送所有使用者的請求,「loop count」為2,表示每個使用者傳送2次請求,因此一共為40次請求。

在「tornado單執行緒測試」上右擊選擇add,選擇sampler,再選擇http request,填寫資訊如下:

該thread group用於測試tornado的sanya這個路徑對應的http請求。

最後我們新增一下對這個測試的一些監控(listener),用於統計該測試的效能。在「sanya_test」上右擊add,選擇listener,依次選擇「view results tree」,「summary report」,「aggregate report」和「aggregate graph」,分別代表每次測試結果,總的測試結果,聚合測試結果,聚合測試圖展示。

在「tornado單執行緒測試上」右擊選擇start,測試結果如下(只展示summary report和aggregate graph):

可以發現,該壓力測試下,請求的平均時間為7472毫秒,1秒2.0次請求(tps)。

我們再以同樣的方式測試shanghai這個介面,測試結果如下:

可以發現,該壓力測試下,請求的平均時間為1718毫秒,1秒7.7次請求(tps)。

根據這次測試,我們也發現tornao的多執行緒機制發揮了作用。

python寫api介面測試之tornador

亞馬遜的lambda跟api dateway搭配編寫介面測試,看了文件發現時間29秒必須出結果,否則超時,像我們爬蟲資料比較多的,多爬點資料就容易超時,那應該怎麼辦呢。於是我挑了乙個輕量級的進行簡單學習 tonador 這邊我寫乙個介面用來提取介詞短語進行介面測試。正好最近要進行提取介詞短語的測試,...

利用JMeter進行壓力測試(1)

壓力測試以軟體響應速度為測試目標,尤其是在較短時間內大量併發使用者的同時訪問時,軟體的效能和抗壓能力。下面簡單介紹一下jmeter。工作台中可以新增非測試元件,其中乙個最重要的就是http 伺服器。http 伺服器可以用來錄製測試指令碼。將瀏覽器的 伺服器設定為127.0.0.1 8080,然後啟動...

利用JMeter測試Tornado的多執行緒

我們將在下面的章節中學習如何使用jmeter,以tornado的多執行緒為例。我們將會以tornado的多執行緒為例,描述如何使用jmeter。測試的tornado多執行緒的python 如下 定義埠為9090 define port default 9090,help run on the giv...