1. 程式人生 > >效能測試-1-原理

效能測試-1-原理

話說:

難度係數:★★★☆☆
建議用時:2周

目標
初步搭建一個自動化測試框架,技術選型:Jenkins+Ant+Jmeter。

1、按照場景組織各個介面,整體按照指定場景順序執行;
2、引數可注入(併發量threadsNumber、迴圈次數loop、以及各場景之間的coldDown、主機Ip、Token);
3、輸出報告按照場景輸出;
4、定期執行及郵件通知;
5、效能測試報告。

筆者前面間斷髮過3篇部落格,分別介紹了:Jmeter的入門級使用、.jmx檔案分析及Jmeter多場景傳參。都比較零碎,沒有系統化總結。今天系統化總結下,形成一個系列;並且儘可能詳細,便於其他童鞋共同交流學習。

說下這三個工具的作用:

Jmeter——拋開壓測不談,這個工具和Postman類似,都可以用來做介面測試;Jmeter主要可以用來模擬高併發,這是最大的特點。比如:我想知道這個branch_center/video_list這個介面的瓶頸在哪裡?能承受多少訪問量?用JMeter可以很輕鬆的做到這一點。
在前後端分離架構中,介面組織順序一般按照場景組織或者按照服務組織….按照業務場景組織,目的是檢視各核心業務場景的併發訪問情況,eg:首頁視訊列表這個核心業務場景,能承擔100個併發量,在150個併發的時候,Error率為3%;按照服務組織介面,目的是為各服務後端開發提供一定的標準:eg:首頁各模組列表介面響應時間要在200ms之內……

所以,我們用Jmeter要做這幾件事:

1)按照核心業務場景,把介面組織起來。一個TestPlan下面,組織多個ThreadsGroup(業務場景),每個ThreadsGroup中放置該業務場景下多個介面;
2)各種引數寫活,為Jenkins傳參伏筆;
3)生成完備的.jmx檔案,上傳到Git;
4)其他。

來,感性認識一下下:

這裡寫圖片描述

Ant——就是一個構建工具,用它來驅動.jmx檔案,為什麼要用它驅動?類似的驅動還有:Maven、Gradle等,ant是輕量化的,網上一般都是這麼組合的,筆者也就“跟風”嘍。最終的目的是自動化,不可能手動點選Jmeter的啟動按鈕,而是通過Jenkins的圖形化介面去“構建”一下,這個構建背後的動作,其實就是一個Ant命令驅動.jmx檔案。

在下載的Jmeter裡面,有個extras目錄,裡面直接執行Ant即可。(前提是已經安裝Ant),可見官方預設也是Jmeter和Ant整合,Ant去編譯build.xml檔案,按照配置檔案去驅動響應的.jmx檔案,生成一個.jtl檔案,然後在主動把.jtl轉換為.html網頁,可以直接開啟,就是報告。

所以,對於Ant來說,我們要做的事情:

1)搞定build.xml;
1、引數可注入;
2、指定執行的.jmx檔案;
3、指定輸出報告
2)打通Ant和Jmeter;

我們來看一下最原始的Jmeter中的extras資料夾中的Ant命令如何運作:

dzjdeMacBook-Air:extras dzj$ ls
GrafanaJMeterTemplate.json          collapse.png                        remote.bsh
Test.html                           execcode.bsh                        schematic.cmd
Test.jmx                            expand.png                          schematic.sh
Test.jtl                            jmeter-results-detail-report_21.xsl schematic.xml
addons.txt                          jmeter-results-report_21.xsl        schematic.xsl
addons.xml                          printvars.bsh                       startup.bsh
ant-jmeter-1.1.1.jar                proxycert.cmd
build.xml                           proxycert.sh
dzjdeMacBook-Air:extras dzj$ 

在Jmeter根目錄下的extras目錄下,直接執行ant命令,結果如下:

dzjdeMacBook-Air:extras dzj$ ant
Buildfile: /Applications/apache-jmeter-4.0/extras/build.xml

run:
     [echo] funcMode = false
   [delete] Deleting: /Applications/apache-jmeter-4.0/extras/Test.html
   [jmeter] Executing test plan: /Applications/apache-jmeter-4.0/extras/Test.jmx ==> /Applications/apache-jmeter-4.0/extras/Test.jtl
   [jmeter] Creating summariser <summary>
   [jmeter] Created the tree successfully using /Applications/apache-jmeter-4.0/extras/Test.jmx
   [jmeter] Starting the test @ Tue May 22 12:42:45 CST 2018 (1526964165219)
   [jmeter] Waiting for possible Shutdown/StopTestNow/Heapdump message on port 4445
   [jmeter] summary =     30 in 00:00:03 =   11.2/s Avg:   208 Min:   103 Max:   345 Err:     2 (6.67%)
   [jmeter] Tidying up ...    @ Tue May 22 12:42:48 CST 2018 (1526964168425)
   [jmeter] ... end of run

_message_xalan:

xslt-report:
     [xslt] Processing /Applications/apache-jmeter-4.0/extras/Test.jtl to /Applications/apache-jmeter-4.0/extras/Test.html
     [xslt] Loading stylesheet /Applications/apache-jmeter-4.0/extras/jmeter-results-detail-report_21.xsl

verify-images:

copy-images:

report:
     [echo] Report generated at 2018/05/22 12:42

all:

BUILD SUCCESSFUL
Total time: 7 seconds
dzjdeMacBook-Air:extras dzj$ 

open Test.html

這裡寫圖片描述

Jenkins——頭像是個老爺爺。這個主要是用來構建的。我們會把所有的專案分門別類的劃分出來,這樣每次啟動專案“構建”一次就好。“構建”背後的操作是:構建就是用相應的構建工具去驅動對應的指令碼;比如:Gradle專案當構建的時候,驅動的就是gradle指令碼檔案,然後在該指令碼檔案中找對應的東西,就重新啟動了專案,而不用手動進入bin下面去驅動命令;再比如:如果Jenkins指定Ant驅動,那麼構建的時候,就去找的是build.xml配置檔案,然後根據build.xml中指定的.jmx,去載入所有的Samples,然後輸出日誌到.jtl格式的檔案中,最後Jenkins把.jtl檔案轉換為一個Performance報表,一目瞭然。

對於Jenkins,我們要做的事:

1、打通Jenkins與Ant;
2、打通Jenkins傳參與Ant與Jmeter;
3、搞定輸出測試報告樣式;
4、搞清楚Ant直接驅動與Jenkins驅動區別
其他.

這個應該不陌生,來來,看下效果:

這裡寫圖片描述

這裡一旦構建的話,就去驅動build.xml拉。

這裡寫圖片描述

專案都是放在Git的,拉下來,然後提交上去,Jenkins可以是單擊,這裡是叢集。
接下來,我們將一步一步的把這個系列總結下來。讓我們拭目以待吧!

再會!

相關推薦

效能測試-1-原理

話說: 難度係數:★★★☆☆ 建議用時:2周 目標 初步搭建一個自動化測試框架,技術選型:Jenkins+Ant+Jmeter。 1、按照場景組織各個介面,整體按照指定場景順序執行; 2、引數可注入(併發量threadsNumber、迴圈次數lo

RabbitMQ客戶端引數效能測試(1)

最近我在公司上線了rabbitmq,替換了原來阿里出的rocketmq(別說我黑阿里的東西,這玩意真的都是坑),我並不想告訴你rabbitmq安裝過程是怎麼樣的,去看官網就知道,戳這裡 看看網上說rabbitmq效率多高多高,但是怎麼測試也只有15000Qps,還是用golang的客戶端來測試訪問的中間沒有

效能測試1-分類和定義

    效能測試按被測物件來分類會有(服務端、中介軟體、客戶端等) 本文章重點對服務端、系統的效能測試進行討論。   常會別人說到效能測試、負載測試、壓力測試、併發測試,很多人都是混合使用,或者一會叫壓力測試,一會叫併發測試。這些概念除了非測試人員分不清楚,甚至許多專業測試人員也對這些名詞也很模糊。關於

【蟲師--系列08】效能測試知多少---效能測試工具原理與架構

來自:http://www.cnblogs.com/fnng/archive/2012/07/31/2617546.html      作者:蟲師 在效能測試的學習過程中,堅持思想與工具(分開)並行,當前面世面上的效能測試書籍大多把理論與loadrunner融為一體講解

golang 效能測試 (1)

本文介紹golang 如何做基準效能測試。 編寫完程式碼除了跑必要的單元測試外,還需要考慮程式碼跑起來的效能如何。效能的衡量其實就是程式執行時候程序的記憶體分配,CPU消耗情況。 golang 語言在提供了功能測試的基礎上,提供了豐富的效能測試功能。 SHOW CODE 首先,從一個例子來講起。 隨便寫一個簡

golang 效能測試 (1) 基準效能測試

本文介紹golang 如何做基準效能測試。 編寫完程式碼除了跑必要的單元測試外,還需要考慮程式碼跑起來的效能如何。效能的衡量其實就是程式執行時候程序的記憶體分配,CPU消耗情況。 golang 語言在提供了功能測試的基礎上,提供了豐富的效能測試功能。 SHOW CODE 首先,從一個例子來講起。 隨便寫一個簡

cglib、orika、spring等bean copy工具效能測試原理分析

# 簡介 在實際專案中,考慮到不同的資料使用者,我們經常要處理 VO、DTO、Entity、DO 等物件的轉換,如果手動編寫 setter/getter 方法一個個賦值,將非常繁瑣且難維護。通常情況下,這類轉換都是同名屬性的轉換(型別可以不同),我們更多地會使用 bean copy 工具,例如 Apache

測試報告】效能測試報告模版1

  目錄 一、文件目錄 二、模版下載 三、文件內容 四、測試環境軟硬體配置資料獲取 一、文件目錄 二、模版下載 我的資源下載地址:【測試報告】效能測試報告模版1 三、文件內容 四

效能測試通用原則【3-1;2-5-10;80/20】

如果設計說明書中沒有給出明確的標準,那麼可以參考國外的業內公認的一些標準:    3+1原則(指量、全、深+快) 主要對效能測試設計、測試執行以及資料分析。 量:包括業務量(業務型別),負荷量(系統處理的流量),配置量(軟體配置和硬體配置),使用者量(靜態使用者和動態使用者)

jmeter介面效能測試1)----簡單的介面測試入門

首先來看一下介面的資訊:host:http://api.jhled888.comuri: /cgi-bin/get.json 介面請求方式: GET 入參:appid: jhyjlhxa03q4f2qlmfappsecret:eb28066907b14310a9401c0586c840

效能測試初級篇1(理論知識)

第一章 效能測試基礎 1、為什麼做效能測試     找出效能的瓶頸,達到軟體的質量目標,給使用者帶來良好的體驗 2、效能測試流程     效能測試需求分析---效能測試計劃---效能測試用例---效能測試平臺搭建---效能測試指令碼開發---效能測試場景設定---效能測試執行---效能測試結果分析(找

raid0+1和raid5的效能測試結果

網上關於效能比較和原理的文章很多,這裡不再過多解釋,只寫測試結果。測試目的:4塊物理硬碟,使用IBMraid卡做raid。4塊做raid 5和兩塊盤分別raid 1的讀效能比較。由於寫會往本地盤寫入資料,暫時沒有測試工具:oracle orign 4塊物理盤做 raid 5

esrally效能測試原理

1. 前提 esrally的執行不會影響當前系統elasticsearch的一切正常業務。 2. 效能測試原理 大致步驟概括如下: 第一步:安裝esrally,耗時會半小時到1個小時之間。 主要完成esrally必要元件安裝,更多的是elast

LoadRunner:Controller及結果分析 一、效能測試概述 1、關於效能測試目標: ①TPS ②一定併發使用者數下功能點的響應時間 ③一定響應時間內功能點的併發使用者數 效能測試不是

一、效能測試概述 1、關於效能測試目標: ①TPS ②一定併發使用者數下功能點的響應時間 ③一定響應時間內功能點的併發使用者數 效能測試不是達到既定目標即可,還要測試軟體功能能夠達到的極限值。 2、關於效能測試的場景: 在指令碼錄製除錯完成後,需要進行場景的設定,進而對指令碼進行壓測,分析壓測的結果。 效能

通過python呼叫adb命令對app進行效能測試(6 -1

上篇文章中講述了adb是什麼,以及常用的命令,下面我們來看下通過adb來檢視手機裝置中的效能引數,首先要檢視apk的包名和預設Activity的名字有好幾種方式,下面介紹2種 第一種 1 開啟cmd 切換目錄D:\tool\android-sdk_r24.

效能測試瓶頸分析(1

所謂效能瓶頸是限制系統性能的關鍵因素 1、硬體上的效能瓶頸  包括:CPU、記憶體(RAM)、磁碟I/O 例如:在需求分析和概要設計師。確定資料庫伺服器需要6個CPU、12G記憶體,但是測試時,發現CPU的持續利用率在95%以上,這時可認為在硬體上出現效能瓶頸

1.用Jemeter 做UDP 效能測試

1.下載Jemeter 5.0 啟動jemeter.bat  2. .. 新增測試計劃TestPlan ,建立執行緒組Thread Group 3.下載jemeter plugin 外掛 https://jmeter-plugins.org/install/I

jmeter-效能測試學習筆記1—結果分析

轉載地址:https://blog.csdn.net/x83853684/article/details/80403190在網上收集了很多jmeter工具做效能測試,但還是不怎麼了解去分析效能測試的結果,然後自己用現在做的專案做了一個簡單的的壓力測試,就是同一時間多個使用者進

evpp效能測試1): 與muduo進行吞吐量測試

By zieckey 簡介 測試物件 測試環境 Linux CentOS 6.2, 2.6.32-220.7.1.el6.x86_64 Intel(R) Xeon(R) CPU E5-2630 v2 @ 2.60GHz gcc