**基礎構成**
**1、組成部分**
1)負載發生器:產生負載,多進程或多線程模擬用戶行為
2)用戶運行器:腳本運行引擎,用戶運行器附加在進程或線程上,根據腳本模擬指定的用戶行為
3)資源生成器:生成測試過程中服務器、負載機的資源數據
4)報表生成器:根據測試中獲得的數據生成報表,提供可視化的數據顯示方式·
**2、主要概念**
**2.1測試計劃(test plan)**
描述一個性能測試,包含本次測試所有相關功能

**2.2.threads(users)線程**

Setup thread group:
一種特殊類型的線程,可用于執行預測試操作。即執行測試前進行定期線程組的執行
Teardown thread group:
一種特殊類型的線程,可用于執行測試后動作。即執行測試結束后執行定期的線程組
以上兩個線程組,舉個例子:loadrunner的腳本除了action里是真正的腳本核心內容,還有初始化“環境”的初始化腳本和測試完畢后對應的清除信息的腳本塊,與其對應
Thread group:
通常添加使用的線程,一般一個線程組可看做一個虛擬用戶組,其中每個線程為一個虛擬用戶
**2.3測試片段(test fragment)**

2.5版本之后新增的一個選項,是一種特殊的線程組,在測試樹上與線程組一個層級,但是它不被執行,除非它是一個模塊控制器或者被控制器所引用時才會被執行
**2.4控制器**
Jmeter有2種控制器:取樣器(sampler)和邏輯控制器(Logic Controller)
作用:用這些原件驅動處理一個測試
1)取樣器(Sampler)

是性能測試中向服務器發送請求,記錄響應信息,記錄響應時間的最小單元,JMeter?原生支持多種不同的sampler?
如?HTTP?Request?Sampler?、?FTP??Request?Sampler 、TCP??Request?Sampler 、JDBC?Request?Sampler?等
每一種不同類型的?sampler?可以根據設置的參數向服務器發出不同類型的請求。
Java?Request?Sampler?和?Beanshell?Request?Sampler?是兩種特殊的可定制的?Sampler?(暫不討論)
2)邏輯控制器(Logic Controller)

包含兩類原件:
一類是控制Test Plan中Sampler節點發送請求的邏輯順序控制器,常用的有:If Controller、Swith Controller、Loop Controller、Random Controller等
另一類是用來組織和控制Sampler節點的,如Transaction Controller、Throughput Controller等
**2.5監聽器(Listener)**

對測試結果進行處理和可視化展示的一系列組件,常用的有圖形結果、查看結果樹、聚合報告等
以上的五類原件就可以構成一個簡單的性能測試腳本
下面再介紹幾種jmeter提供的其他組件:
**2.6配置原件(Config Element)**

用于提供對靜態數據配置的支持。CSV Date Set Config可以將本地數據文件形成數據池(Date Pool),而對應于HTTP Request Configuration
和TCP Request Sample等類型的Configuration元件則可以修改這些Sample的默認數據等
**2.7定時器(Time)**

用于操作之間設置等待時間,等待時間使性能測試中常用的控制客戶端QPS的手段,jmeter定義了Constant Times、
Constant Throughput Times、Guass Ramdon Times等不同類型的Times
**2.8斷言(Assertions)**

用于檢查測試中得到的響應數據等是否符合預期,Assertions一般用來設置檢查點,用以保證性能測試過程中的數據交互與預期一致
**2.9前處理器(Pre Processors)**

用于在實際請求發出之前對即將發出的請求進行特殊處理。
例如:Count處理器可以實現自增操作,自增后生成的的數據可以被將要發出的請求使用,而HTTP URL Re—Writing Modifier處理器則可以實現URL重寫,
當URL中有sessionID一類的session信息時,可以通過該處理器填充發出請求實際的sessionID。
**2.10后處理器(Post Processors)**

用于對Sampler發出請求后得到的服務器響應進行處理。一般用來提取響應中的特定數據(類似loadrunner中的關聯)。
例如:Regular Expression Extractor用于提取響應數據中匹配某正則表達式的數據段,并將其填充在參數中,Xpath Extractor則可以用于提取響應數據中通過給定Xpath值獲得的數據。。。
**接口性能測試相關名詞**
PV 即 page view,頁面瀏覽量
? ?用戶每一次對網站中的每個頁面訪問均被記錄1次。用戶對同一頁面的多次刷新,訪問量累計。
UV 即 Unique visitor,獨立訪客
? ?通過客戶端的cookies實現。即同一頁面,客戶端多次點擊只計算一次,訪問量不累計。
IP 即 Internet Protocol,本意本是指網絡協議,在數據統計這塊指通過ip的訪問量。
? ?即同一頁面,客戶端使用同一個IP訪問多次只計算一次,訪問量不累計。
TPS 即Transactions Per Second的縮寫,每秒處理的事務數目。一個事務是指一個客戶機向服務器發送請求然后服務器做出反應的過程。客戶機在發送請求時開始計時,收到服務器響應后結束計時,以此來計算使用的時間和完成的事務個數,最終利用這些信息作出的評估分。
QPS 即Queries Per Second的縮寫,每秒能處理查詢數目。是一臺服務器每秒能夠相應的查詢次數,是對一個特定的查詢服務器在規定時間內所處理流量多少的衡量標準。
RPS 即Requests Per Second的縮寫,每秒能處理的請求數目。等效于QPS
因特網上,經常用每秒查詢率來衡量域名系統服務器的機器的性能,其即為QPS。
對應fetches/sec,即每秒的響應請求數,也即是最大吞吐能力。
計算關系:
QPS = 并發量 / 平均響應時間
并發量 = QPS \* 平均響應時間
- 第一章-測試理論
- 1.1軟件測試的概念
- 1.2測試的分類
- 1.3軟件測試的流程
- 1.4黑盒測試的方法
- 1.5AxureRP的使用
- 1.6xmind,截圖工具的使用
- 1.7測試計劃
- 1.8測試用例
- 1.9測試報告
- 2.0 正交表附錄
- 第二章-缺陷管理工具
- 2.1缺陷的內容
- 2.2書寫規范
- 2.3缺陷的優先級
- 2.4缺陷的生命周期
- 2.5缺陷管理工具簡介
- 2.6缺陷管理工具部署及使用
- 2.7軟件測試基礎面試
- 第三章-數據庫
- 3.1 SQL Server簡介及安裝
- 3.2 SQL Server示例數據庫
- 3.3 SQL Server 加載示例
- 3.3 SQL Server 中的數據類型
- 3.4 SQL Server 數據定義語言DDL
- 3.5 SQL Server 修改數據
- 3.6 SQL Server 查詢數據
- 3.7 SQL Server 連表
- 3.8 SQL Server 數據分組
- 3.9 SQL Server 子查詢
- 3.10.1 SQL Server 集合操作符
- 3.10.2 SQL Server聚合函數
- 3.10.3 SQL Server 日期函數
- 3.10.4 SQL Server 字符串函數
- 第四章-linux
- 第五章-接口測試
- 5.1 postman 接口測試簡介
- 5.2 postman 安裝
- 5.3 postman 創建請求及發送請求
- 5.4 postman 菜單及設置
- 5.5 postman New菜單功能介紹
- 5.6 postman 常用的斷言
- 5.7 請求前腳本
- 5.8 fiddler網絡基礎及fiddler簡介
- 5.9 fiddler原理及使用
- 5.10 fiddler 實例
- 5.11 Ant 介紹
- 5.12 Ant 環境搭建
- 5.13 Jmeter 簡介
- 5.14 Jmeter 環境搭建
- 5.15 jmeter 初識
- 5.16 jmeter SOAP/XML-RPC Request
- 5.17 jmeter HTTP請求
- 5.18 jmeter JDBC Request
- 5.19 jmeter元件的作用域與執行順序
- 5.20 jmeter 定時器
- 5.21 jmeter 斷言
- 5.22 jmeter 邏輯控制器
- 5.23 jmeter 常用函數
- 5.24 soapUI概述
- 5.25 SoapUI 斷言
- 5.26 soapUI數據源及參數化
- 5.27 SoapUI模擬REST MockService
- 5.28 Jenkins的部署與配置
- 5.29 Jmeter+Ant+Jenkins 搭建
- 5.30 jmeter腳本錄制
- 5.31 badboy常見的問題
- 第六章-性能測試
- 6.1 性能測試理論
- 6.2 性能測試及LoadRunner簡介
- 第七章-UI自動化
- 第八章-Maven
- 第九章-測試框架
- 第十章-移動測試
- 10.1 移動測試點及測試流程
- 10.2 移動測試分類及特點
- 10.3 ADB命令及Monkey使用
- 10.4 MonkeyRunner使用
- 10.5 appium工作原理及使用
- 10.6 Appium環境搭建(Java版)
- 10.7 Appium常用函數(Java版)
- 10.8 Appium常用函數(Python版)
- 10.9 兼容性測試