整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          http接口壓測工具wrk

          http接口壓測工具wrk

          rk是一款簡單的HTTP壓測工具,當運行在單個多核CPU上時,它能夠產生巨大的負載。

          github:https://github.com/wg/wrk

          國內鏡像: https://gitee.com/mirrors/wrk

          安裝:

          git clone https://github.com/wg/wrk.git
          cd wrk
          make
          # 將可執行文件移動到 /usr/local/bin 位置
          sudo cp wrk /usr/local/bin

          查看版本:

          [root@node1 wrk]# wrk -v

          wrk 4.1.0-8-ga211dd5 [epoll] Copyright (C) 2012 Will Glozer

          Usage: wrk <options> <url>

          Options:

          -c, --connections <N> Connections to keep open

          -d, --duration <T> Duration of test

          -t, --threads <N> Number of threads to use

          -s, --script <S> Load Lua script file

          -H, --header <H> Add header to request

          --latency Print latency statistics

          --timeout <T> Socket/request timeout

          -v, --version Print version details

          Numeric arguments may include a SI unit (1k, 1M, 1G)

          Time arguments may include a time unit (2s, 2m, 2h)

          可以看到wrk的用法,相對來說比較簡單;

          接下來使用wrk來壓測下百度首頁,

          使用20個線程100個連接進行30s的壓測:

          wrk -t20 -c100 -d30s http://www.baidu.com

          壓測下本地的接口:

          wrk -t20 -c100 -d30s --latency http://127.0.0.1:9000

          以上是wrk的基本用法,還可以使用lua腳本進行個性化壓測,有興趣的可以研究下。


          原文鏈接:https://river106.cn/posts/3e707d63.html

          介:隨著互聯網安全規范的普及,使用 HTTPS 技術進行通信加密,實現網站和 APP 的可信訪問,已經成為公認的安全標準。本文將介紹針對 HTTPS 協議做壓力測試的關注點,以及使用 PTS 做 HTTPS 壓測的技術優勢和最佳實踐。

          作者:拂衣

          引言

          隨著互聯網安全規范的普及,使用 HTTPS 技術進行通信加密,實現網站和 APP 的可信訪問,已經成為公認的安全標準。本文將介紹針對 HTTPS 協議做壓力測試的關注點,以及使用 PTS 做 HTTPS 壓測的技術優勢和最佳實踐。

          常見的網站或者 APP 中需要做壓測的 3 種場景:

          • 新開發的系統或功能上線前需要了解其性能水位情況。
          • 對系統進行技術調優、系統擴容前后通過壓測進行性能比對。
          • 參加平臺活動前對系統進行性能評估。

          什么是 HTTPS

          HTTPS 的英文全稱是:Hyper Text Transfer Protocol over Secure Socket Layer,它是以安全為目標的 HTTP 通道。從全稱上可以看出,它其實不是一種新的應用層協議,只是 HTTP 協議將通信接口用 SSL 替代了 TCP。HTTP 協議中,應用層 HTTP 直接與傳輸層 TCP 通信,在 HTTPS 協議中 ,應用層 HTTP 與 SSL 通信,SSL 再與傳輸層的 TCP 通信,具體如圖:

          ?HTTPS 通過 SSL 層的加密,可以防止網站被篡改和劫持。下面我們簡單看下 HTTPS 是如何進行加密解密的:

          首先客戶端和服務端會協商加密算法和協議版本。協商結束后,服務端發送公鑰給客戶端,客戶端拿到公鑰后,生成一個隨機密碼串(Pre-master secret),并通過公鑰加密返回給服務端。服務端使用私鑰解密密文后,得到此隨機密碼串(Pre-master secret),之后通過協商的隨機數和加密算法,生成對稱加密密鑰。至此,雙方得到了同一個密鑰,后續使用此密鑰實現對稱加密解密。

          ?我們知道對稱加密性能更好,但只要持有密鑰,就能將劫持的密文解密,無法解決被劫持的問題。非對稱加密相對更安全,但同時加密解密性能開銷大。可以看出 HTTPS 在握手階段使用了非對稱加密,在后續的通信中使用了對稱加密,既保證了安全性,又最大限度保證了性能。

          HTTPS 壓測的關注點

          SSL 握手策略

          HTTPS 在握手階段有加密解密的過程,所以相比 HTTP 更消耗計算資源。壓測引擎為了模擬海量用戶執行請求,往往底層會在全局或線程維度,復用 TCP 連接和 SSL 握手信息。這提高了施壓機的性能,但對希望每次循環模擬不同客戶端行為的場景來說,施壓機只模擬了足夠的流量壓力,并沒有模擬足夠的 SSL 握手計算壓力,可能造成壓力模擬不夠準確的問題,如下圖所示:

          ?因此,在 HTTPS 壓測中,需要根據壓測場景的具體業務邏輯,指定每次循環是否重置 SSL 握手狀態,準確模擬 SSL 握手計算壓力。

          SSL 協議版本

          HTTPS 壓測,在客戶端(施壓機)和服務端進行 SSL 握手的第一步,客戶端會告知給服務端自己支持的最高 SSL 協議版本,然后服務端會從自己和客戶端支持版本的交集中,取最高的版本作為實際使用的 SSL 版本。

          在壓測時,需要評估出真實客戶端的主流版本,并配置到施壓引擎上。避免因 SSL 版本不同,造成 SSL 握手計算壓力模擬不準確。

          Why PTS—PTS 做 HTTPS 壓測的優勢

          JMeter、Gatling、K6 等開源壓測工具對 HTTPS 有不同程度的支持。JMeter[1]支持配置循環是否重置 SSL 握手狀態,并且支持配置客戶端 SSL 協議版本,但是默認不支持 HTTP2 協議。Gatling[2]默認每個虛擬用戶共享 SSL 上下文,不支持控制循環重置 SSL 握手狀態。K6[3]目前只支持設置 SSL 協議版本。

          PTS 作為云上壓測工具,支持如下 HTTPS 相關特性:

          • 支持 HTTP2
            HTTP2 相比較 HTTP1.1 性能大幅提升,且目前主流瀏覽器均已支持 HTTP2 協議。為了模擬真實客戶端,建議使用 HTTP2 協議。
          • 支持設置 SSL 握手策略
            支持配置循環是否重置 SSL 握手狀態,可以根據業務場景,選擇是否重置。
          • 支持指定 SSL 協議版本

          使用 PTS 壓測,可以更真實的模擬客戶端發起的 HTTPS 壓力,使壓測結果更可信。

          How to—如何用 PTS 做 HTTPS 壓測

          設置 SSL 握手策略

          ?對于 HTTPS 壓測,在串聯鏈路每次循環時,需要選擇是否重置 SSL 連接狀態。如果選擇重置,在串聯鏈路每一次循環執行時,會重新初始化 SSL 狀態,這樣可以更準確模擬每次循環代表不同用戶的壓測場景,同時會對施壓機帶來一定的性能開銷。

          使用場景

          • 場景一:HTTPS 壓測,希望模擬 100 個用戶登錄,同時保持這 100 個用戶不斷重復訪問系統。此時串聯鏈路每次循環執行,模擬的是同一個虛擬用戶的行為。應將此開關置為“否”,然后設置并發數為 100。
          • 場景二:HTTPS 壓測,希望模擬 5 分鐘內,每個時刻都有 100 個不同用戶對系統訪問。此時串聯鏈路每次循環執行,模擬的是不同虛擬用戶的行為。為了保證壓力模擬真實性,應將此開關置為“是”,然后設置并發數為 100。同時因為打開此開關后,施壓機有額外的性能開銷,建議擴展施壓機IP數。

          設置 SSL 協議版本

          這里列出一些常用瀏覽器對 SSL 版本的支持情況供您參考:

          ?可以看出,主流瀏覽器在 2018~2020 年前后都支持了 TLSv1.3。因此,如果您的壓測場景模擬的客戶端較新,建議您選擇 TLSv1.3 作為 SSL 版本;相反,如果您的壓測場景需要模擬舊版本的瀏覽器客戶端,建議您選擇 TLSv1.2 作為 SSL 版本。

          如何錄制 HTTPS 流量

          各壓測工具都提供了基于代理的流量錄制工具,方便錄制下客戶端的流量,并快速構建壓測腳本。對于 HTTPS 協議的錄制,除了配置代理,還需要信任證書,操作比較復雜。

          PTS 提供了免配置證書的錄制方案:瀏覽器插件,支持快速錄制 HTTPS 流量,解密并轉換為 PTS 壓測場景,同時支持導出為 JMeter 腳本,歡迎下載[4]使用,詳細操作可參考文檔[5]

          ?同時針對移動流量錄制,PTS 提供了云真機和本地設備 2 種方案。其中云真機已預置 PTS 代理配置,支持在瀏覽器操作手機,錄制流量,無需配置代理和證書,詳細操作可參考文檔[6]

          ?總結

          綜上,本文主要闡述了:

          • 什么是 HTTPS
          • HTTPS 壓測中的注意點
          • 如何用 PTS 做 HTTPS 壓測

          更多交流,歡迎進釘釘群溝通,PTS 用戶交流群號:11774967

          同時,PTS 全新售賣方式來襲,基礎版價格直降 50%!百萬并發價格只需 6200!更有新用戶 0.99 體驗版、VPC 壓測專屬版,歡迎大家選購!

          參考文檔

          [1] JMeter(官方文檔):

          https://jmeter.apache.org/usermanual/component_reference.html?spm=a2c6h.12873639.article-detail.4.6d4a7ca0EKzFeR#HTTP_Request

          [2] Gatling(官方文檔):

          https://gatling.io/docs/gatling/reference/current/http/ssl/

          [3] K6:

          https://k6.io/docs/using-k6/options/#tls-version

          [4] 下載(PTS HTTPS錄制器插件):

          https://chrome.google.com/webstore/detail/alibaba-cloud-pts%E5%BD%95%E5%88%B6%E5%99%A8/noonnhdncblnaknhoebaglpcihelliff

          [5] 文檔(PTS 錄制器使用文檔—Chrome 瀏覽器場景):

          https://help.aliyun.com/document_detail/187749.html

          [6] 文檔(PTS 錄制器使用文檔—Android 手機端場景):

          https://help.aliyun.com/document_detail/72519.html

          [7] PTS HTTPS設置文檔:

          https://help.aliyun.com/document_detail/143194.html

          原文鏈接:301 Moved Permanently

          本文為阿里云原創內容,未經允許不得轉載。

          heck Web Performance 測試下網絡性能

          下面都是一些在線的站點,可以嘗試看看,個人感覺還不錯。測試下網絡性能:

          https://www.17ce.com
          https://www.tingyun.com/tingyun_network.html
          https://gtmetrix.com
          https://tools.pingdom.com
          https://www.dotcom-tools.com/website-speed-test.aspx
          https://webspeedtest.cloudinary.com
          https://www.webpagetest.org
          https://www.dareboost.com/en/analysis

          學習兩個壓測命令:

          ab是apachebench命令的縮寫, 默認mac下都已經安裝了

          ?  ~ /usr/sbin/ab --help
          /usr/sbin/ab: wrong number of arguments
          Usage: /usr/sbin/ab [options] [http[s]://]hostname[:port]/path
          Options are:
              -n requests     Number of requests to perform
              -c concurrency  Number of multiple requests to make at a time
              -t timelimit    Seconds to max. to spend on benchmarking
                              This implies -n 50000
              -s timeout      Seconds to max. wait for each response
                              Default is 30 seconds
              -b windowsize   Size of TCP send/receive buffer, in bytes
              -B address      Address to bind to when making outgoing connections
              -p postfile     File containing data to POST. Remember also to set -T
              -u putfile      File containing data to PUT. Remember also to set -T
              -T content-type Content-type header to use for POST/PUT data, eg.
                              'application/x-www-form-urlencoded'
                              Default is 'text/plain'
              -v verbosity    How much troubleshooting info to print
              -w              Print out results in HTML tables
              -i              Use HEAD instead of GET
              -x attributes   String to insert as table attributes
              -y attributes   String to insert as tr attributes
              -z attributes   String to insert as td or th attributes
              -C attribute    Add cookie, eg. 'Apache=1234'. (repeatable)
              -H attribute    Add Arbitrary header line, eg. 'Accept-Encoding: gzip'
                              Inserted after all normal header lines. (repeatable)
              -A attribute    Add Basic WWW Authentication, the attributes
                              are a colon separated username and password.
              -P attribute    Add Basic Proxy Authentication, the attributes
                              are a colon separated username and password.
              -X proxy:port   Proxyserver and port number to use
              -V              Print version number and exit
              -k              Use HTTP KeepAlive feature
              -d              Do not show percentiles served table.
              -S              Do not show confidence estimators and warnings.
              -q              Do not show progress when doing more than 150 requests
              -l              Accept variable document length (use this for dynamic pages)
              -g filename     Output collected data to gnuplot format file.
              -e filename     Output CSV file with percentages served
              -r              Don't exit on socket receive errors.
              -m method       Method name
              -h              Display usage information (this message)
              -I              Disable TLS Server Name Indication (SNI) extension
              -Z ciphersuite  Specify SSL/TLS cipher suite (See openssl ciphers)
              -f protocol     Specify SSL/TLS protocol
                              (TLS1, TLS1.1, TLS1.2 or ALL)
              -E certfile     Specify optional client certificate chain and private key
              

          ? ~ /usr/sbin/ab -n 100 -c 5 http://www.baidu.com/

          This is ApacheBench, Version 2.3 <$Revision: 1843412 $>

          Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/

          Licensed to The Apache Software Foundation, http://www.apache.org/

          Benchmarking www.baidu.com (be patient).....done

          Server Software: BWS/1.1

          Server Hostname: www.baidu.com

          Server Port: 80

          Document Path: /

          Document Length: 280696 bytes

          Concurrency Level: 5

          Time taken for tests: 6.152 seconds

          Complete requests: 100

          Failed requests: 96

          (Connect: 0, Receive: 0, Length: 96, Exceptions: 0)

          Total transferred: 28187420 bytes

          HTML transferred: 28071381 bytes

          Requests per second: 16.25 [#/sec] (mean)

          Time per request: 307.617 [ms] (mean)

          Time per request: 61.523 [ms] (mean, across all concurrent requests)

          Transfer rate: 4474.20 [Kbytes/sec] received

          Connection Times (ms)

          min mean[+/-sd] median max

          Connect: 34 52 19.6 46 152

          Processing: 151 248 60.5 233 443

          Waiting: 37 57 20.6 51 151

          Total: 186 300 67.6 286 504

          Percentage of the requests served within a certain time (ms)

          50% 286

          66% 323

          75% 341

          80% 354

          90% 392

          95% 443

          98% 502

          99% 504

          100% 504 (longest request)

          推薦另一個個人感覺這個更好用一些

          brew search wrk

          ==> Formulae

          wrk ? wrk-trello

          brew install wrk 來安裝


          主站蜘蛛池模板: 精品人妻一区二区三区四区| 亚洲Av永久无码精品一区二区| 无码国产精品久久一区免费| 3d动漫精品啪啪一区二区免费 | 中文字幕在线精品视频入口一区 | 国产乱码精品一区二区三区中文| 国产福利一区视频| 久夜色精品国产一区二区三区| 亚洲色欲一区二区三区在线观看| 日本美女一区二区三区| 国产SUV精品一区二区88L| 久久中文字幕一区二区| 国内精品视频一区二区三区八戒| 亚洲日韩国产一区二区三区| 无码免费一区二区三区免费播放| 国产精品无码一区二区在线观 | 色欲AV无码一区二区三区| 精品在线视频一区| 国产vr一区二区在线观看| 国偷自产Av一区二区三区吞精| 国产精品视频一区二区三区不卡| 国产乱码精品一区二区三区麻豆| 日韩人妻无码一区二区三区| 亚洲中文字幕丝袜制服一区| 91video国产一区| 亚洲色一区二区三区四区| 九九无码人妻一区二区三区| 国产一区二区三区四| 国精产品一区二区三区糖心| 无码毛片视频一区二区本码| 无码日本电影一区二区网站| 国产嫖妓一区二区三区无码| 久久综合精品国产一区二区三区| 无码人妻少妇色欲AV一区二区| 中文字幕在线不卡一区二区| 一区二区三区在线观看视频| 久久er99热精品一区二区| 高清国产精品人妻一区二区| 亚洲一区二区三区免费观看| 国产精品无码一区二区三区电影| 91精品一区二区三区在线观看|