Jmeter腳本錄制和壓測(cè)

1. 什么是腳本錄制

在進(jìn)行測(cè)試的時(shí)候,可能有好多腳本或者界面需要操作測(cè)試,并且有些測(cè)試鏈接需要重復(fù)多線程高并發(fā)進(jìn)行測(cè)試,我們一般會(huì)針對(duì)這一些操作,進(jìn)行一個(gè)腳本錄制,錄制好之后,之后測(cè)試就可以在這個(gè)基礎(chǔ)上進(jìn)行測(cè)試。

2. Jemeter腳本錄制方式

web端:BadBoy腳本錄制
app端:使用Jmeter自帶的代理服務(wù)器進(jìn)行腳本錄制

3. Android手機(jī)端腳本錄制

前提:電腦和手機(jī)在同一網(wǎng)絡(luò)段上

1:添加http代理服務(wù)器

image
image

2:在線程中添加錄制控制器

image
image

3:在http代理服務(wù)器中指定錄制腳本的路徑,默認(rèn)端口8888

image

4:查看本地的ip(wifi熱點(diǎn))

image

5:設(shè)置移動(dòng)端代理,IP和端口號(hào)

image

6:啟動(dòng)

image

點(diǎn)擊”ok”

image

7:打開手機(jī)app,抓取接口

image

8:點(diǎn)擊”停止”按鈕,結(jié)束錄制

image

4.web端腳本錄制

4.1. 安裝badboy腳本軟件

image

傻瓜式安裝即可

4.2. 打開badboy軟件

image

4.3. badboy腳本錄制

點(diǎn)擊錄制按鈕進(jìn)行腳本錄制,完成打開搜狗搜索,搜索測(cè)試崗位薪資操作,然后停止,回放,(回放的時(shí)候,會(huì)因?yàn)榫幋a原因?qū)е聛y碼,需要手動(dòng)調(diào)亂碼問題)

image
image
image
image

<meta charset="utf-8">

4.4. 添加驗(yàn)證點(diǎn)

驗(yàn)證點(diǎn)的作用就是驗(yàn)證腳本是否按照我們測(cè)試的思路執(zhí)行,判斷腳本執(zhí)行過程中是否存現(xiàn)問題

image

4.5. badboy參數(shù)化

所謂參數(shù)化,是指請(qǐng)求的某個(gè)參數(shù)提前設(shè)定多個(gè)值,在具體請(qǐng)求的時(shí)候,去獲取提前設(shè)定的值,不同的業(yè)務(wù)場(chǎng)景設(shè)置的參數(shù)不一致。

image
image
image
image
image

4.6. 導(dǎo)出Jmeter腳本

image

4.7. 在Jmeter中導(dǎo)入badboy生成的腳本,驗(yàn)證測(cè)試

image

4.8. badboy并發(fā)測(cè)試

選擇tools run background

image

4.9. badboy測(cè)試報(bào)告

在badboy-->view--->report下可以看到測(cè)試報(bào)告

image

Jmeter壓測(cè)

<meta charset="utf-8">

Jmeter本身是不能夠展示內(nèi)存,cpu和吞吐量的,但是可以通過添加插件的方式來對(duì)jmeter添加這些功能
Jmeter常用插件介紹
JMeter之ServerAgent監(jiān)控資源

一、 數(shù)據(jù)庫壓測(cè)

1. 為什么要進(jìn)行數(shù)據(jù)庫壓測(cè)

不斷給數(shù)據(jù)庫施加壓力,驗(yàn)證數(shù)據(jù)庫處理的性能

2. 如何進(jìn)行數(shù)據(jù)庫壓測(cè)

測(cè)試的過程中,我們經(jīng)常要對(duì)數(shù)據(jù)庫表數(shù)據(jù)進(jìn)行查詢、修改、添加等操作。在用 JMeter 做性能或者接口等 測(cè)試時(shí),也可以讓 JMeter 連接數(shù)據(jù)庫然后對(duì)數(shù)據(jù)庫數(shù)據(jù)進(jìn)行相關(guān)操作。下面先來學(xué)習(xí)如何使用 JMeter 連接 MySql 數(shù)據(jù)庫進(jìn)行操作。

2.1 JDBC配置
  • 首先創(chuàng)建一個(gè)測(cè)試計(jì)劃和線程組,然后在線程組下添加配置元件 JDBC Connection Configuration 。

    image
  • 接下來要對(duì)數(shù)據(jù)庫連接的配置項(xiàng)進(jìn)行設(shè)置。

    image
Variable Name for created pool: 創(chuàng)建池的變量名 。這個(gè)變量在后面介紹的 JDBC Request 請(qǐng)求中用到。 
Max Number of Connections: 池中允許的最大連接數(shù)。在大多數(shù)情況下,將其設(shè)置為零(0),這意味 著每個(gè)線程都將擁有自己的池,其中只有一個(gè)連接,即線程之間不共享連接。如果您真的想使用共享池,那么 將 max count 設(shè)置為與線程數(shù)量相同,以確保線程不會(huì)彼此等待。 
Max Wait(ms):在試圖檢索連接的過程中超過了超時(shí)時(shí)間,則池會(huì)拋出一個(gè)錯(cuò)誤 。 
Time Between Eviction Runs (ms):在被逐出的時(shí)間間隔(ms)。在空閑對(duì)象驅(qū)逐線程之間運(yùn)行的毫 秒數(shù)。當(dāng)非正的時(shí)候,就不會(huì)運(yùn)行無用的對(duì)象驅(qū)逐線程(默認(rèn)為"60000",1分鐘) 。 
Auto Commit:將自動(dòng)提交或關(guān)閉連接到連接上 。 
transaction isolation:事務(wù)隔離 。這個(gè)默認(rèn)即可,具體用法暫時(shí)還沒有研究過,會(huì)的可以分享一下。 
Test While Idle :測(cè)試池的空閑連接 ,后面的驗(yàn)證查詢將用于測(cè)試它。 
Soft Min Evictable Idle Time(ms) :軟Min可驅(qū)逐空閑時(shí)間(ms) 。在它有資格被閑置的對(duì)象驅(qū) 逐者強(qiáng)制驅(qū)逐之前,一個(gè)連接可能閑置在池中,并且至少在池中存在空閑連接的額外條件,默認(rèn)值為5000(5 秒) 。 
Validation Query :驗(yàn)證查詢 。一個(gè)簡單的查詢,用來確定數(shù)據(jù)庫是否仍在響應(yīng)。 這個(gè)驗(yàn)證查詢?cè)诔貏?chuàng) 建中使用,即使“空閑測(cè)試”建議查詢只在空閑連接上使用,也可以驗(yàn)證它。 
Database URL:數(shù)據(jù)鏈接url,格式:jdbc:mysql://localhost:3306/host 注釋:數(shù)據(jù)庫的ip地址+端口/數(shù)據(jù)庫名(查詢數(shù)據(jù)庫端口號(hào)show global variables like 'port') jdbc:mysql://127.0.0.1:3306/mydb2?serverTimezone=UTC& allowMultiQueries=true
JDBC Driver class :JDBC驅(qū)動(dòng)程序類 。MySql 選擇 com.mysql.jdbc.Driver Username :連接數(shù)據(jù)庫的用戶名。
Password:連接數(shù)據(jù)庫的密碼。

2.2 設(shè)置完成后,接下來在線程組下創(chuàng)建一個(gè) JDBC Request 請(qǐng)求。
image
image
image

接著在 JMeter 中添加一個(gè)查看結(jié)果樹監(jiān)聽器,運(yùn)行一次腳本。

image
2.3 select statement
  1. 只支持單條查詢,只支持第一條數(shù)據(jù)查詢
//如果多條會(huì)報(bào)錯(cuò),修改,但是仍然只能查詢到一條數(shù)據(jù)
 allowMultiQueries=true

2.4 updata statement
  • 修改數(shù)據(jù)
//首先修改查詢類型Updata S、tatement
updata stu set name="大飛" where id=1;

  • 新增數(shù)據(jù)
//首先修改查詢類型updata statement
insert into 

  • 同時(shí)新增支持和修改語句
  • 支持多條語句,但是select只能放最后一行
2.5 Callable Statement
  • 支持查詢、修改
  • 支持多個(gè)查詢
2.6 Prepared Select Statement
image

注意:類型必須為varchar

  • 結(jié)合CSV處理多條查詢
    創(chuàng)建文件數(shù)據(jù):

    image

    添加CSV數(shù)據(jù)文件設(shè)置,并編寫對(duì)應(yīng)的變量:

    image

    引用變量值${id}

    image
  • 結(jié)合函數(shù)助手多條查詢
    創(chuàng)建文件編寫數(shù)據(jù)
    在選項(xiàng)中添加函數(shù)助手,選擇csvread函數(shù),填寫路徑索引,拿到對(duì)應(yīng)的字符串
    講拿到的字符串當(dāng)成值進(jìn)行傳遞

二、 jmeter對(duì)服務(wù)器壓測(cè)(Windows)

在使用Jmeter工具進(jìn)行性能測(cè)試或者壓力測(cè)試的時(shí)候要對(duì)服務(wù)器的資源進(jìn)行監(jiān)控,如cup的使用情況、服務(wù)器的內(nèi)存資源等,這個(gè)時(shí)候我們就需要配置一下相關(guān)插件進(jìn)行監(jiān)控。

1. 資源準(zhǔn)備

插件:JMeterPlugins-Extras.jar、JMeterPlugins-Standard.jar
將JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar放到apache-jmeter-3.0\lib\ext目錄下
服務(wù):ServerAgent-2.2.1

2. 先在服務(wù)器上開啟server的監(jiān)聽

image

3. 給服務(wù)器(用本地?cái)?shù)據(jù)庫模擬服務(wù)器)添加監(jiān)聽器-jp@gc - PerfMon Metrics Collector

image

4. 添加性能指標(biāo),線程組設(shè)置線程數(shù)和時(shí)間

image

二、 jmeter對(duì)服務(wù)器壓測(cè)(Linux)

很多服務(wù)都是部署在Linux上 的,所以我們要在Linux上做服務(wù)器壓測(cè)。

1. 資源準(zhǔn)備

將JMeterPlugins-Extras.jar和JMeterPlugins-Standard.jar放到apache-jmeter-3.0\lib\ext目錄下
將ServerAgent-2.2.1放到linux服務(wù)器opt目錄下,并解壓unzip

2. 環(huán)境準(zhǔn)備

ServerAgent服務(wù)端口號(hào)默認(rèn)為4444,需要設(shè)置防火墻對(duì)此端口不攔截:
開放Linux的對(duì)外訪問的端口4444

/sbin/iptables -I INPUT -p tcp --dport 4444 -j ACCEPT
/etc/rc.d/init.d/iptables save ---將修改永久保存到防火墻中

3. 然后在服務(wù)器中啟動(dòng)監(jiān)控服務(wù)

./startagent.sh

4. 修改JDBC Connection Configuration中配置

本地地址改為遠(yuǎn)程地址

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1.什么是腳本錄制 在進(jìn)行測(cè)試的時(shí)候,可能有好多腳本或者界面需要操作測(cè)試,并且有些測(cè)試鏈接需要重復(fù)多線程高并發(fā)進(jìn)行...
    KiKi_2005A閱讀 235評(píng)論 0 0
  • 1.什么是腳本錄制 在進(jìn)行測(cè)試的時(shí)候,可能有好多腳本或者界面需要操作測(cè)試,并且有些測(cè)試鏈接需要重復(fù)多線程高并發(fā)進(jìn)行...
    c_dab5閱讀 271評(píng)論 0 0
  • 什么是腳本錄制在進(jìn)行測(cè)試的時(shí)候,可能有好多腳本或者界面需要操作測(cè)試,并且有些測(cè)試鏈接需要重復(fù)多線程高并發(fā)進(jìn)行測(cè)試,...
    胖虎大魔王閱讀 203評(píng)論 0 0
  • 1.什么是腳本錄制 在進(jìn)行測(cè)試的時(shí)候,可能有好多腳本或者界面需要操作測(cè)試,并且有些測(cè)試鏈接需要重復(fù)多線程高并發(fā)進(jìn)行...
    Dovis_911b閱讀 213評(píng)論 0 0
  • 在進(jìn)行測(cè)試的時(shí)候,可能有好多腳本或者界面需要操作測(cè)試,并且有些測(cè)試鏈接需要重復(fù)多線程高并發(fā)進(jìn)行測(cè)試,我們一般會(huì)針對(duì)...
    MouN明星閱讀 136評(píng)論 0 0