欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

JMeter的簡(jiǎn)介

  JMeter是Apache組織開發(fā)的基于Java的壓力測(cè)試工具。用于對(duì)軟件做壓力測(cè)試,它最初被設(shè)計(jì)用于Web應(yīng)用測(cè)試,但后來擴(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():
  # 開啟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)單說面:

  • /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,填寫信息如下:


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

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

該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)文章

  • python實(shí)現(xiàn)skywalking的trace模塊過濾和報(bào)警(實(shí)例代碼)

    python實(shí)現(xiàn)skywalking的trace模塊過濾和報(bào)警(實(shí)例代碼)

    Skywalking可以對(duì)鏈路追蹤到數(shù)據(jù)進(jìn)行告警規(guī)則配置,例如響應(yīng)時(shí)間、響應(yīng)百分比等。發(fā)送警告通過調(diào)用webhook接口完成。webhook接口用戶可以自定義。本文給大家介紹python實(shí)現(xiàn)skywalking的trace模塊過濾和報(bào)警,感興趣的朋友跟隨小編一起看看吧
    2021-12-12
  • 詳解pandas的外部數(shù)據(jù)導(dǎo)入與常用方法

    詳解pandas的外部數(shù)據(jù)導(dǎo)入與常用方法

    這篇文章主要介紹了詳解pandas的外部數(shù)據(jù)導(dǎo)入與常用方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • python使用cookielib庫(kù)示例分享

    python使用cookielib庫(kù)示例分享

    Python中cookielib庫(kù)(python3中為http.cookiejar)為存儲(chǔ)和管理cookie提供客戶端支持,下面是使用示例
    2014-03-03
  • Android分包MultiDex策略詳解

    Android分包MultiDex策略詳解

    這篇文章主要介紹了Android分包MultiDex策略詳解,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-10-10
  • Python的爬蟲框架scrapy用21行代碼寫一個(gè)爬蟲

    Python的爬蟲框架scrapy用21行代碼寫一個(gè)爬蟲

    最近在學(xué)習(xí)Python的爬蟲框架scrapy,通過爬取線報(bào)網(wǎng)站后發(fā)現(xiàn)整個(gè)過程還是挺值得學(xué)習(xí)的,所以下面這篇文章主要就給大家介紹了Python的爬蟲框架scrapy利用21行代碼寫一個(gè)爬蟲的相關(guān)資料,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-04-04
  • python用ConfigObj讀寫配置文件的實(shí)現(xiàn)代碼

    python用ConfigObj讀寫配置文件的實(shí)現(xiàn)代碼

    發(fā)現(xiàn)一個(gè)簡(jiǎn)單而又強(qiáng)大的讀寫配置文件的lib,個(gè)人覺得最大的亮點(diǎn)在于自帶的格式校驗(yàn)功能,并且支持復(fù)雜的嵌套格式,而且使用起來也相當(dāng)?shù)暮?jiǎn)便
    2013-03-03
  • 一小時(shí)快速入門Python教程

    一小時(shí)快速入門Python教程

    這篇文章主要講述了幾個(gè)例子,通過簡(jiǎn)單的demo讓有寫代碼經(jīng)驗(yàn)的你能夠快速的入門Python的使用,大大提升你的學(xué)習(xí)效率
    2021-06-06
  • 通過python模糊匹配算法對(duì)兩個(gè)excel表格內(nèi)容歸類

    通過python模糊匹配算法對(duì)兩個(gè)excel表格內(nèi)容歸類

    這篇文章主要介紹了通過python模糊匹配算法對(duì)兩個(gè)excel表格內(nèi)容歸類,比如兩個(gè)不同的工程項(xiàng)目針對(duì)的對(duì)象都是A,那么就需要將這兩個(gè)工程項(xiàng)目歸類到A當(dāng)中,可以減少很大一部分工作量,,需要的朋友可以參考下
    2023-03-03
  • 基于Python的數(shù)據(jù)分析與可視化

    基于Python的數(shù)據(jù)分析與可視化

    在當(dāng)今數(shù)字化時(shí)代,數(shù)據(jù)分析和可視化已經(jīng)成為了企業(yè)和個(gè)人必備的技能,Python 作為一種高級(jí)編程語言,具有易學(xué)易用、高效快捷的特點(diǎn),在數(shù)據(jù)科學(xué)領(lǐng)域中得到了廣泛應(yīng)用,本篇文章將介紹基于 Python 的數(shù)據(jù)分析與可視化
    2023-07-07
  • 對(duì)Python3之進(jìn)程池與回調(diào)函數(shù)的實(shí)例詳解

    對(duì)Python3之進(jìn)程池與回調(diào)函數(shù)的實(shí)例詳解

    今天小編就為大家分享一篇對(duì)Python3之進(jìn)程池與回調(diào)函數(shù)的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01

最新評(píng)論