利用JMeter測試Tornado的多執行緒

2022-07-01 18:15:11 字數 2766 閱讀 9424

我們將在下面的章節中學習如何使用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 函式

def get(self):

time.sleep(0.5)

self.write('hello from sanya!')

# 多執行緒測試

class shanghaihellohandler(tornado.web.requesthandler):

executor = threadpoolexecutor(4)

@gen.coroutine

def get(self):

result = yield self.doing()

self.write(result)

# 使用tornado 執行緒池

@run_on_executor

def doing(self):

time.sleep(0.5)

return 'hello from shanghai!'

# 主函式

def server():

# 開啟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...