最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python利用JMeter測試Tornado的多線程

 更新時間:2020年01月12日 10:29:07   作者:jclian91  
這篇文章主要介紹了python利用JMeter測試Tornado的多線程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

JMeter的簡介

  JMeter是Apache組織開發(fā)的基于Java的壓力測試工具。用于對軟件做壓力測試,它最初被設計用于Web應用測試,但后來擴展到其他測試領域。 它可以用于測試靜態(tài)和動態(tài)資源,例如靜態(tài)文件、Java 小服務程序、CGI 腳本、Java 對象、數(shù)據(jù)庫、FTP 服務器, 等等。

  JMeter的下載網(wǎng)址為:https://jmeter.apache.org/download_jmeter.cgi,下載前請先確定電腦中安裝了Java,下載完畢后點擊bin文件夾下的"meter.bat"(Windows系統(tǒng))或者"jmeter"可執(zhí)行文件(Unix系統(tǒng))即可,界面如下:


  我們將在下面的章節(jié)中學習如何使用JMeter,以Tornado的多線程為例。

JMeter使用,以Tornado多進程為例

  我們將會以Tornado的多線程為例,描述如何使用JMeter。測試的Tornado多線程的Python代碼如下:

# -*- coding: utf-8 -*-
# author: Jclian91
# place: Sanya Hainan
# time: 2020-01-08 21:48
import time
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define, options

from tornado import gen
from tornado.concurrent import run_on_executor
from concurrent.futures import ThreadPoolExecutor

# 定義端口為9090
define("port", default=9090, help="run on the given port", type=int)


# 單線程測試
class SanyaHelloHandler(tornado.web.RequestHandler):
  # get 函數(shù)
  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!'


# 主函數(shù)
def server():
  # 開啟tornado服務
  tornado.options.parse_command_line()
  # 定義app
  app = tornado.web.Application(
      handlers=[(r'/sanya', SanyaHelloHandler),
           (r'/shanghai', ShanghaiHelloHandler)
           ],  # 網(wǎng)頁路徑控制
     )
  http_server = tornado.httpserver.HTTPServer(app)
  http_server.listen(options.port)
  http_server.start()
  tornado.ioloop.IOLoop.instance().start()

server()

對上面的程序做個簡單說面:

  • /sanya路徑對應SanyaHelloHandler,該HTTP接口為get請求,單線程;
  • /shanghai路徑對應 ShanghaiHelloHandler,該HTTP接口為get請求,用線程池實現(xiàn)多線程,線程數(shù)為4;

  啟動上述Python程序,下一步描述如何使用JMeter。

  首先新建一個測試計劃(Test Plan),取名為tornao測試,如下:

  右擊選擇Add,選擇Threads(Users),再選擇Thread Group,填寫信息如下:


填寫Thread Group的名稱為“tornado單線程測試”,“Number of Threads”為20,表示模擬20個用戶,“Ramp-Up period”為1,表示1秒內(nèi)發(fā)送所有用戶的請求,“Loop Count”為2,表示每個用戶發(fā)送2次請求,因此一共為40次請求。

  在“tornado單線程測試”上右擊選擇Add,選擇Sampler,再選擇HTTP Request,填寫信息如下:

該Thread Group用于測試tornado的sanya這個路徑對應的HTTP請求。

  最后我們添加一下對這個測試的一些監(jiān)控(Listener),用于統(tǒng)計該測試的性能。在“sanya_test”上右擊Add,選擇Listener,依次選擇“View Results Tree”,“Summary Report”,“Aggregate Report”和“Aggregate Graph”,分別代表每次測試結果,總的測試結果,聚合測試結果,聚合測試圖展示。

  在“tornado單線程測試上”右擊選擇start,測試結果如下(只展示Summary Report和Aggregate Graph):


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

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



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

  根據(jù)這次測試,我們也發(fā)現(xiàn)tornao的多線程機制發(fā)揮了作用。

  以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • Python命令行參數(shù)解析之a(chǎn)rgparse模塊詳解

    Python命令行參數(shù)解析之a(chǎn)rgparse模塊詳解

    這篇文章主要介紹了Python命令行參數(shù)解析之a(chǎn)rgparse模塊詳解,argparse?是?Python?的一個標準庫,用于命令行參數(shù)的解析,這意味著我們無需在代碼中手動為變量賦值,而是可以直接在命令行中向程序傳遞相應的參數(shù),再由變量去讀取這些參數(shù),需要的朋友可以參考下
    2023-08-08
  • python GUI庫圖形界面開發(fā)之PyQt5信號與槽機制、自定義信號基礎介紹

    python GUI庫圖形界面開發(fā)之PyQt5信號與槽機制、自定義信號基礎介紹

    這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5信號與槽機制基礎介紹,需要的朋友可以參考下
    2020-02-02
  • PyQt 圖解Qt Designer工具的使用方法

    PyQt 圖解Qt Designer工具的使用方法

    這篇文章主要介紹了PyQt 圖解Qt Designer工具的使用方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-08-08
  • 用python爬取租房網(wǎng)站信息的代碼

    用python爬取租房網(wǎng)站信息的代碼

    今天小編就為大家分享一篇關于用python爬取租房網(wǎng)站信息的代碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 簡單介紹Python中的JSON模塊

    簡單介紹Python中的JSON模塊

    這篇文章主要介紹了簡單介紹Python中的JSON模塊,包括初步的從Python中的數(shù)據(jù)格式轉(zhuǎn)換為JSON格式等,需要的朋友可以參考下
    2015-04-04
  • Python isinstance函數(shù)介紹

    Python isinstance函數(shù)介紹

    這篇文章主要介紹了Python isinstance函數(shù)介紹,本文用實例講解了判斷變量是否是某個指定類型,需要的朋友可以參考下
    2015-04-04
  • Python的垃圾回收機制深入分析

    Python的垃圾回收機制深入分析

    這篇文章主要介紹了Python的垃圾回收機制,有助于深入的理解Python的內(nèi)存分配與回收機制,需要的朋友可以參考下
    2014-07-07
  • Python實現(xiàn)輸入二叉樹的先序和中序遍歷,再輸出后序遍歷操作示例

    Python實現(xiàn)輸入二叉樹的先序和中序遍歷,再輸出后序遍歷操作示例

    這篇文章主要介紹了Python實現(xiàn)輸入二叉樹的先序和中序遍歷,再輸出后序遍歷操作,涉及Python基于先序遍歷和中序遍歷構造二叉樹,再后序遍歷輸出相關操作技巧,需要的朋友可以參考下
    2018-07-07
  • Django?事務回滾的具體實現(xiàn)

    Django?事務回滾的具體實現(xiàn)

    本文主要介紹了Django?事務回滾的具體實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • 解決Python2.7中IDLE啟動沒有反應的問題

    解決Python2.7中IDLE啟動沒有反應的問題

    今天小編就為大家分享一篇解決Python2.7中IDLE啟動沒有反應的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11

最新評論

綦江县| 黑水县| 确山县| 宁远县| 安阳县| 湖州市| 岳西县| 靖边县| 镇安县| 台州市| 禄丰县| 阳原县| 普兰店市| 高青县| 门源| 厦门市| 大竹县| 澄城县| 夹江县| 大名县| 军事| 安乡县| 老河口市| 通榆县| 拜泉县| 白玉县| 调兵山市| 德庆县| 沽源县| 桂林市| 兴安盟| 广饶县| 杭锦旗| 伊金霍洛旗| 始兴县| 陇西县| 都江堰市| 仁怀市| 琼结县| 修文县| 兴山县|