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