真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Jmeter接口壓測(cè)快速入門-創(chuàng)新互聯(lián)

[TOC]

精河ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來(lái)市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

Jmeter簡(jiǎn)介

Jmeter是Apache開源的一個(gè)使用純Java編寫的壓力測(cè)試工具,它最初是為測(cè)試web應(yīng)用程序而設(shè)計(jì)的,但后來(lái)擴(kuò)展到了其他測(cè)試功能。例如,可用于測(cè)試靜態(tài)和動(dòng)態(tài)資源以及web動(dòng)態(tài)應(yīng)用程序的性能等。Jmeter可以用來(lái)模擬對(duì)服務(wù)器、服務(wù)器組、網(wǎng)絡(luò)或?qū)ο笊系闹刎?fù)載,以測(cè)試其強(qiáng)度或分析服務(wù)在不同負(fù)載類型下的總體性能。

如今Jmeter是一個(gè)主流的、功能完善且強(qiáng)大的壓測(cè)工具,由于是使用Java編寫的,所以具有跨平臺(tái)特性,可以運(yùn)行在Windows、Mac、Linux等操作系統(tǒng)上。并且支持豐富的協(xié)議,如:HTTP/HTTPS、FTP、JDBC、SOCKET、SOAP。。。等,此外還有許多第三方插件支持以及第三方集成

相關(guān)網(wǎng)址:

  • 官網(wǎng)地址:https://jmeter.apache.org/
  • 下載地址:https://jmeter.apache.org/download_jmeter.cgi
  • 用戶手冊(cè):https://jmeter.apache.org/usermanual/index.html

配置Jmeter的測(cè)試計(jì)劃

通過以上給出的地址將Jmeter下載好后,進(jìn)入到Jmeter的bin目錄下,啟動(dòng)腳本放在這個(gè)目錄,其中windows雙擊jmeter.bat即可,Mac和Linux下則是使用如下命令運(yùn)行:

sudo sh {JMETER_HOME}/bin/jmeter.sh

初次運(yùn)行可能會(huì)比較慢,啟動(dòng)成功后,界面如下:
Jmeter接口壓測(cè)快速入門

接下來(lái)我們看看如何使用Jmeter對(duì)接口進(jìn)行壓測(cè),我現(xiàn)在有一個(gè)商品列表接口,接口路徑為:/goods/to_list。

想要使用Jmeter對(duì)這個(gè)接口進(jìn)行壓測(cè)的話,首先右擊左邊欄的“Test Plan”(測(cè)試計(jì)劃),添加一個(gè)“Thread Group”(線程組),如下圖所示:
Jmeter接口壓測(cè)快速入門

接著簡(jiǎn)單配置一下請(qǐng)求線程數(shù)之類的,線程數(shù)就代表著并發(fā)數(shù):
Jmeter接口壓測(cè)快速入門

因?yàn)樵摻涌谑峭ㄟ^HTTP請(qǐng)求的,所以需要添加一個(gè)HTTP請(qǐng)求默認(rèn)值,如下圖:
Jmeter接口壓測(cè)快速入門

配置接口服務(wù)的請(qǐng)求協(xié)議、ip地址以及端口號(hào),這樣后面添加HTTP請(qǐng)求的時(shí)候就不需要重復(fù)填寫這些信息了,可以起到一個(gè)通用配置的作用:
Jmeter接口壓測(cè)快速入門

然后添加一個(gè)HTTP請(qǐng)求:
Jmeter接口壓測(cè)快速入門

這里只需要配置接口路徑以及請(qǐng)求方法即可,因?yàn)镴meter會(huì)自動(dòng)幫我們拼上之前配置的HTTP請(qǐng)求默認(rèn)值:
Jmeter接口壓測(cè)快速入門

為了查看測(cè)試結(jié)果,還需要添加一些監(jiān)聽器,監(jiān)聽器有很多種,也可以添加多個(gè),這里我添加了一個(gè)聚合報(bào)告:
Jmeter接口壓測(cè)快速入門

以及一個(gè)圖形結(jié)果:
Jmeter接口壓測(cè)快速入門


開始測(cè)試

在上一小節(jié)中,介紹了如何針對(duì)一個(gè)現(xiàn)有的接口配置測(cè)試計(jì)劃,按照以上步驟配置完成后如下:
Jmeter接口壓測(cè)快速入門

現(xiàn)在我們就可以開始執(zhí)行這個(gè)測(cè)試計(jì)劃了:
Jmeter接口壓測(cè)快速入門

測(cè)試運(yùn)行完成后,可以在聚合報(bào)告中看到壓測(cè)的統(tǒng)計(jì)數(shù)據(jù):
Jmeter接口壓測(cè)快速入門

簡(jiǎn)單說明下這些統(tǒng)計(jì)指標(biāo):

  • Samples:采樣數(shù)/請(qǐng)求數(shù)
  • Average:平均響應(yīng)時(shí)間,單位毫秒
  • Median:響應(yīng)時(shí)間的一個(gè)中間值,單位毫秒
  • 90%Line:90%的請(qǐng)求響應(yīng)時(shí)間,單位毫秒
  • 95%Line:95%的請(qǐng)求響應(yīng)時(shí)間,單位毫秒
  • 99%Line:99%的請(qǐng)求響應(yīng)時(shí)間,單位毫秒
  • Min:請(qǐng)求最小響應(yīng)時(shí)間,單位毫秒
  • Maximum:請(qǐng)求大響應(yīng)時(shí)間,單位毫秒
  • Error %:響應(yīng)錯(cuò)誤率
  • Throughput:每秒的吞吐量
  • Received KB/sec:每秒接收的數(shù)據(jù)量
  • Send KB/sec:每秒發(fā)送的數(shù)據(jù)量

如果此時(shí)查看圖形結(jié)構(gòu)的話,會(huì)發(fā)現(xiàn)只有一點(diǎn)點(diǎn)線條,這是因?yàn)槲覀儗⒕€程組的線程數(shù)設(shè)置太小了:
Jmeter接口壓測(cè)快速入門

可以嘗試將線程數(shù)設(shè)置到1000,然后清除之前的測(cè)試報(bào)告數(shù)據(jù):
Jmeter接口壓測(cè)快速入門

然后再運(yùn)行這個(gè)測(cè)試計(jì)劃,運(yùn)行完成后再打開圖形結(jié)果就可以看到曲線圖了,如下:
Jmeter接口壓測(cè)快速入門


命令行壓測(cè)

以上小節(jié)介紹了Jmeter的基本使用,但都是基于可視化界面操作的。在某些情況下我們可能需要在服務(wù)器上進(jìn)行測(cè)試,而絕大多數(shù)服務(wù)器系統(tǒng)都只有命令行。好在Jmeter支持命令行下的操作,所以本小節(jié)將介紹在命令行下如何使用Jmeter做壓測(cè)。

首先第一步是在當(dāng)前的操作系統(tǒng)下在可視化界面上配置好測(cè)試計(jì)劃并將其存儲(chǔ)為jmx文件,在這一步我們直接將之前所演示的測(cè)試計(jì)劃另存為jmx文件即可?!癴ile” -> “Save Test Plan as”:
Jmeter接口壓測(cè)快速入門

  • Tips:jmx文件內(nèi)容格式為xml,實(shí)際上就是描述了測(cè)試計(jì)劃的配置信息,感興趣的話可以自行打開瞧一瞧

第二步是將這個(gè)jmx文件上傳到服務(wù)器上,我這里的操作系統(tǒng)是Mac OS,所以使用scp進(jìn)行上傳:

scp MyWorkSpace/TestFiles/goods_list.jmx root@${server_ip}:/home/goods_list.jmx
  • Tips:如果是windows系統(tǒng),可以使用rz命令,直接選擇上傳的文件即可。

上傳完成后,使用Jmeter的shell腳本jmeter.sh執(zhí)行該jmx文件:

[root@server ~]# cd /usr/local/apache-jmeter-5.1.1/bin/
[root@server /usr/local/apache-jmeter-5.1.1/bin]# ./jmeter.sh -n -t /home/goods_list.jmx -l /home/result.jtl

參數(shù)說明:

  • -n:非圖形界面啟動(dòng)
  • -t:指定需要執(zhí)行的jmx文件路徑
  • -l:指定結(jié)果文件的存儲(chǔ)路徑

執(zhí)行該測(cè)試計(jì)劃后,想要知道壓測(cè)是否正常進(jìn)行的話,可以使用top命令查看系統(tǒng)負(fù)載。我這里很明顯是正常執(zhí)行壓測(cè)了,CPU負(fù)載達(dá)到了19.72
Jmeter接口壓測(cè)快速入門

執(zhí)行結(jié)束后會(huì)輸出一些測(cè)試結(jié)果的統(tǒng)計(jì)信息:
Jmeter接口壓測(cè)快速入門

正常情況下執(zhí)行結(jié)束會(huì)生成一個(gè)測(cè)試結(jié)果文件,存放在我們使用參數(shù)-l指定的路徑下。如下:
Jmeter接口壓測(cè)快速入門

最后把生成的result.jtl文件下載到本地,并導(dǎo)入到Jmeter中。“Aggregate Report” -> “Browser” -> “Open”:
Jmeter接口壓測(cè)快速入門

此時(shí)就可以看到測(cè)試結(jié)果的聚合報(bào)告了:
Jmeter接口壓測(cè)快速入門


自定義變量模擬多用戶

上面兩小節(jié)我們簡(jiǎn)單介紹了Jmeter的基本使用,而本小節(jié)則將介紹一個(gè)在Jmeter中很實(shí)用的功能:自定義變量。有過一些測(cè)試經(jīng)驗(yàn)的小伙伴應(yīng)該知道在很多接口的測(cè)試用例下,我們可能需要模擬多個(gè)用戶對(duì)某一接口進(jìn)行請(qǐng)求,這時(shí)候通過使用Jmeter里的自定義變量就能實(shí)現(xiàn)這個(gè)功能。當(dāng)然自定義變量不僅僅是用來(lái)模擬多用戶,這里只是舉一個(gè)實(shí)際的應(yīng)用例子。

在一個(gè)線程組里可以添加多個(gè)HTTP請(qǐng)求,如果希望一次只測(cè)試一個(gè)接口的話,可以將其他測(cè)試請(qǐng)求給禁用掉。例如這里將之前所添加的“商品列表”給禁用,右擊“商品列表”選擇“Disable”:
Jmeter接口壓測(cè)快速入門

現(xiàn)在我有一個(gè)可以通過token獲取用戶信息的接口:/user/info,該接口需要接收一個(gè)參數(shù),即用戶的登錄token。根據(jù)該接口添加一個(gè)新的HTTP請(qǐng)求,具體配置如下:
Jmeter接口壓測(cè)快速入門

按照如此配置,每次請(qǐng)求傳遞的都是同一個(gè)token,這樣就只能針對(duì)一個(gè)用戶進(jìn)行測(cè)試。若要模擬多用戶,自然不能將token寫死在這里,而是將其抽取成一個(gè)變量,這也就是所謂的自定義變量了。在Jmeter中自定義變量,首先需要添加一個(gè)“CSV Data Set Config”。如下圖所示:
Jmeter接口壓測(cè)快速入門

然后創(chuàng)建一個(gè)配置文件,配置文件的內(nèi)容是有一定格式的,需要使用分隔符分隔,分隔符可以是任意的可識(shí)別符號(hào),例如我這里使用逗號(hào)進(jìn)行分隔:

$ cat config.txt
13000000001,149787a6b7986f31b3dcc0e4e857cd2a
13000000002,078563f337ec6d6fedf131ddc857db19
13000000003,7692dcdc19e41e66c6ae2de54a696b25
13000000004,0f3e84acb19dff22f695f31dbe3e972a
13000000005,268e27056a3e52cf3755d193cbeb0594
13000000006,00c66aaf5f2c3f49946f15c1ad2ea0d3

接著根據(jù)配置文件和實(shí)際需求編輯如下選項(xiàng),讓Jmeter可以從配置文件中讀取配置項(xiàng):
Jmeter接口壓測(cè)快速入門

  • Tips:這里定義的變量名中userId對(duì)應(yīng)的是配置文件中的第一列,而token則是對(duì)應(yīng)的第二列,以此類推。另外,分隔符必須與配置文件中的分隔符保持一致,這樣Jmeter才能正常構(gòu)建變量與配置的映射關(guān)系

在使用的時(shí)候,通過${變量名}引用自定義變量即可,如下示例:
Jmeter接口壓測(cè)快速入門

這樣Jmeter就會(huì)從配置文件中讀取不同的token并賦值給我們定義好的變量,那么每次請(qǐng)求就可以傳遞不同的token,以達(dá)到模擬多個(gè)用戶請(qǐng)求的效果。


在上一小節(jié)中我們介紹過命令行下的壓測(cè)方式,但如果我們配置的測(cè)試計(jì)劃用到了自定義變量, 且定義了配置文件的路徑。而服務(wù)器上的文件路徑肯定和本地操作系統(tǒng)的文件路徑不一樣,那么要如何更改配置文件的路徑呢?

首先將jmx文件和配置文件一并上傳到服務(wù)器上,接著打開jmx文件并查找到CSVDataSet標(biāo)簽,然后將描述配置文件路徑的子標(biāo)簽的值改為服務(wù)器上配置文件所在的正確路徑即可。如下圖所示:
Jmeter接口壓測(cè)快速入門


Redis壓測(cè)工具 - redis-benchmark

Redis作為緩存中間件,其性能瓶頸會(huì)影響到系統(tǒng)的整體性能,所以通常我們也需要通過壓測(cè)的方式確定Redis服務(wù)的性能瓶頸是多少。而Redis自帶了壓測(cè)工具:redis-benchmark,本小節(jié)將簡(jiǎn)單介紹該工具的使用。

該工具的使用也比較簡(jiǎn)單,如果只是做一個(gè)壓測(cè)的話,只需要使用如下命令即可:

[root@server ~]# redis-benchmark -h 127.0.0.1 -p 6379 -c 100  -n 100000

參數(shù)說明:

  • -h:指定host,即redis服務(wù)所在的ip地址
  • -p:指定端口號(hào)
  • -c:指定并發(fā)請(qǐng)求數(shù)量
  • -n:指定發(fā)送多少個(gè)請(qǐng)求

執(zhí)行該命令后,控制臺(tái)會(huì)輸出相應(yīng)的壓測(cè)結(jié)果。觀察輸出的信息會(huì)發(fā)現(xiàn),該命令會(huì)逐個(gè)對(duì)redis的一些主要指令進(jìn)行壓測(cè),我這里就截取了get指令的壓測(cè)結(jié)果。如下:

====== GET ======
  # 10w個(gè)請(qǐng)求在1.58秒內(nèi)執(zhí)行完畢
  100000 requests completed in 1.58 seconds
  # 100個(gè)并發(fā)客戶端
  100 parallel clients
  # 每個(gè)請(qǐng)求數(shù)據(jù)包大小為3字節(jié)
  3 bytes payload
  keep alive: 1

# 48.00%的請(qǐng)求耗時(shí)小于等于1毫秒
48.00% <= 1 milliseconds
# 99.66%的請(qǐng)求耗時(shí)小于等于2毫秒
99.66% <= 2 milliseconds
# 100%的請(qǐng)求耗時(shí)小于等于2毫秒
100.00% <= 2 milliseconds
# 每秒可完成63411.54個(gè)請(qǐng)求,即QPS
63411.54 requests per second

如果希望壓測(cè)時(shí)指定每個(gè)請(qǐng)求的數(shù)據(jù)包大小可參考如下命令:

[root@server ~]# redis-benchmark -h 127.0.0.1 -p 6379 -q -d 100

參數(shù)說明:

  • -q:表示quiet,即不輸出詳細(xì)信息,僅輸出每個(gè)指令的QPS信息
  • -d:指定每個(gè)請(qǐng)求的數(shù)據(jù)包大小,單位為字節(jié)

如果只想壓測(cè)指定的命令,則可以使用-t參數(shù)來(lái)指定,如下示例:

[root@server ~]# redis-benchmark -h 127.0.0.1 -p 6379 -t set,lpush  -q -n 100000

如果想壓測(cè)某條具體的指令,那么則可以使用script load來(lái)指定腳本。如下示例:

[root@server ~]# redis-benchmark -h 127.0.0.1 -p 6379 -q -n 100000 script load "redis.call('set', 'foo', 'bar')"

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開啟,新人活動(dòng)云服務(wù)器買多久送多久。


分享文章:Jmeter接口壓測(cè)快速入門-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)路徑:http://weahome.cn/article/ccjejc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部