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

python利用JMeter測(cè)試Tornado的多線程

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

JMeter的簡(jiǎn)介

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

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


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

JMeter使用,以Tornado多進(jìn)程為例

  我們將會(huì)以Tornado的多線程為例,描述如何使用JMeter。測(cè)試的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)


# 單線程測(cè)試
class SanyaHelloHandler(tornado.web.RequestHandler):
  # get 函數(shù)
  def get(self):
    time.sleep(0.5)
    self.write('Hello from Sanya!')

# 多線程測(cè)試
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():
  # 開(kāi)啟tornado服務(wù)
  tornado.options.parse_command_line()
  # 定義app
  app = tornado.web.Application(
      handlers=[(r'/sanya', SanyaHelloHandler),
           (r'/shanghai', ShanghaiHelloHandler)
           ],  # 網(wǎng)頁(yè)路徑控制
     )
  http_server = tornado.httpserver.HTTPServer(app)
  http_server.listen(options.port)
  http_server.start()
  tornado.ioloop.IOLoop.instance().start()

server()

對(duì)上面的程序做個(gè)簡(jiǎn)單說(shuō)面:

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

  啟動(dòng)上述Python程序,下一步描述如何使用JMeter。

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

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


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

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

該Thread Group用于測(cè)試tornado的sanya這個(gè)路徑對(duì)應(yīng)的HTTP請(qǐng)求。

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

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


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

  我們?cè)僖酝瑯拥姆绞綔y(cè)試shanghai這個(gè)接口,測(cè)試結(jié)果如下:



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

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

  以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論

汉中市| 瑞安市| 沐川县| 台南市| 青阳县| 仁布县| 大庆市| 吉木乃县| 盐边县| 宁波市| 上饶县| 阜康市| 岳西县| 宿州市| 金门县| 仪陇县| 涿州市| 泾阳县| 郁南县| 栾川县| 高州市| 灵台县| 富裕县| 盐池县| 肥乡县| 伊金霍洛旗| 扎鲁特旗| 巩义市| 铜鼓县| 北碚区| 孟州市| 武安市| 平江县| 游戏| 通辽市| 景洪市| 湖州市| 涟源市| 绥阳县| 灌南县| 古蔺县|