Jmeter接口測試——使用教程(下)

前言

上一篇我給大家講了jmeter的基本介紹跟參數化和jmeter腳本及jmeter斷言,今天讓我們繼續往下看,學習一下jmeter新的知識點。

一、Jmeter關聯

我們知道斷言是從返回結果中檢查有沒有預期的值,現在有一個問題,有一個購買商品的接口,必須要先登錄才能夠購買商品, 那么你調用接口的時候怎么知道是否已經登錄了,一般這樣的都會在調用的時候傳一個token的參數,服務端判斷token是否過期或者token是否正確,如果正確的話,那就是登錄成功了就可以買東西了。

那么這樣的話,你就要先獲取到token,token是從呢來的呢,肯定是從登錄接口返回的,因為要先登錄嘛,那這樣就得先調用登錄接口, 獲取到token,然后把獲取到的token傳給購買商品的這個接口。

關聯就是做這個事的,它就是獲取到返回的值,然后保存起來,給別的請求使用,或者做一些其他的處理。

=====Jmeter中的關聯是通過正則表達式提取器來完成的。

?

=====

通過上面的關聯就可以把返回中我們想要的值抓到了,給其他請求使用的時候,直接使用${name}即可,name就是你關聯的時候設置的變量名。

二、Jmeter操作mysql

1、Jmeter操作mysql步驟:

1)、導入jdbc的jar包,因為jmeter本身不能直接連接mysql,所以需要導入第三方的jar包,來連接mysql

2)、創建數據庫連接配置,mysql的url、端口號、賬號、密碼

3)、寫sql,執行sql

4)、查看結果

?

2、Jmeter數據庫驅動列表

數據庫

驅動

數據庫url

mysql

com.mysql.jdbc.Driver

jdbc:mysql://host:port/{dbname}?allowMultiQueries=true

oracle

org.postgresql.Driver

jdbc:postgresql:{dbname}

PostgreSQL

oracle.jdbc.driver.OracleDriver

jdbc:oracle:thin:user/pass@//host:port/service

MSSQL

com.microsoft.sqlserver.jdbc.SQLServerDriver

或者

net.sourceforge.jtds.jdbc.Driver

jdbc:sqlserver://IP:1433;databaseName=DBname

或者

jdbc:jtds:sqlserver://localhost:1433/"+"library"

3、Jmeter配置mysql連接

1)、添加一個JDBC Connection Configuration

?

2)、配置mysql連接池的名稱,后面發sql請求的時候指定連接哪里

3)、數據庫的url:jdbc:mysql://192.168.1.116:3307/bugfree?

allowMultiQueries=true

4)、數據庫驅動:這里就是指定連接什么類型的數據庫,mysql、oracle、SqlServer等等

5)、賬號密碼

三、Jmeter操作mongodb

1、Jmeter操作mongodb步驟:

1)、添加一個MongoDB?Source?Config,配置mongodb連接信息,指定ip和數據源

2)、添加一個mongodb的請求腳本,指定數據源

?

3)、寫查詢語句

4)、查看結果

2、Mongodb操作語句

show dbs;查看所有數據庫

use db;選擇一個數據庫

show collections;查看所有集合,也就是表

db.collection.find();#查詢所有數據

db.collection.find({"name":"mongodb"});#查詢指定的條件

db.collection.insert({"name":"mongodb","age":18});#插入數據

db.collection.update({“name”:“mongodb”},{$set:{“createtime”:“20150810”}});#更新數據

db.besttest.remove({“name”:“mongodb”});#刪除指定數據

四、Jmeter壓力測試

做壓力測試也就是多少用戶一起去操作,也就是設置多少并發,運行多久。

1、壓力測試場景設置

一般我們在做壓力測試的時候,分單場景和混合場景,單場景也就是咱們壓測單個接口的時候,多場景也就是有業務流程的情況下,比如說一個購物流程,那么這樣的場景就是混合場景,就是有多個接口一起來做操作。

1)、單場景,一個請求就可以了

2)、混合場景,多個請求

3)、壓測時間,一般場景都是運行10-15分鐘,如果是做疲勞測試的話,可以壓一天或者一周,根據具體的情況來定

2、壓力測試數據準備

在做壓測的時候,數據量少和數據量大的情況下,測試的結果是不一樣的,所以,我們在設計場景的時候是要考慮到這種情況的,要測試數據庫中數據量大和數據量小的情況,如果是要測試數據量大的情況下,就要造數據了,造數據可以使用jmeter,操作數據庫來造數據,也可以使用python連接數據庫,批量的造數據。

3、壓力測試結果查看

查看結果關注的幾個指標

1)、tps是每秒鐘處理的請求數,也就是指服務器的處理能力,tps越高說明服務器處理能力越好

2)、響應時間,也就是每個請求的處理時間

3)、并發用戶數??也就是多少并發

?

?五、Linux下運行jmeter壓力測試

我們在做測試的時候,有時候要運行很久,公司用的測試服務器一般都是linux,就可以運行在linux下面,linux下面不能像windows一樣有圖形化界面,那怎么運行腳本呢,就先在windows上把腳本做好,然后在linux下運行即可,linux下運行jmeter是在jmeter的bin目錄下的jmeter.sh這個shell腳本。

sh jmeter.sh -n –t a.jmx -l res.jtl

-n ? ? ? ? 代表以沒有圖形化界面啟動

-t ? ? ? ? ?代表后面是測試腳本

a.jmx ? ? 也就是我們做好的jmeter腳本

-l ? ? ? ? ? 代表測試結果

res.jtl ? ? 就是測試結果文件

查看結果的話,在查看結果樹視圖中導入這個res.jtl就可以查看到測試結果了

Jmeter添加負載機

我們在壓測的時候,可能并發比較大, 一臺機子已經啟動不了那么多并發了,這個時候我們就要使用多臺機子一起來發壓力,就要添加壓力機,添加壓力機怎么添加呢,首先要在做壓力機的機子上啟動jmeter的代理,然后做為控制機的機子上添加上壓力機的ip即可。

1)、Jmeter的bin目錄下有一個jmeter-server,啟動它即可,windows機子作為壓力機的話,運行jmeter-sever.bat,linux作為壓力機的話,運行jmeter-server

2)、然后在作為控制機的jmeter配置文件里添加壓力機ip即可,jmeter的配置文件在bin目錄下jmeter.properties,添加壓力機的時候,在配置文件里面找到remote_hosts添加ip,然后重啟jmeter就可以看到遠程壓力機了后重啟jmeter就可

3)、在配置文件里面添加之后,重啟jmeter,在運行的時候,就可以看到壓力機的ip了,可以選擇他來運行這個腳本,全部運行的話,也就是所有壓力機上的全部都啟動,就選擇遠程全部啟動,就所有的壓力機就都運行了。

?

?感謝每一個認真閱讀我文章的人,禮尚往來總是要有的,雖然不是什么很值錢的東西,如果你用得到的話可以直接拿走:

?

這些資料,對于【軟件測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴上萬個測試工程師們走過最艱難的路程,希望也能幫助到你!有需要的小伙伴可以點擊下方小卡片領取?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/166996.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/166996.shtml
英文地址,請注明出處:http://en.pswp.cn/news/166996.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【學習筆記】GameFramework的非官方實例TowerDefense-GameFramework-Demo的流程

一、從游戲開始到打開一個Menu GameStart.unity GameEntry.Builtin.cs ProcedureComponent.cs GameStart.unity->GameFramework->Builtin->Procedure ProcedureLaunch.cs ProcedureSplash.cs ProcedurePreload.cs ProcedureLoadingScene.cs DataTables/Scene.txt Pro…

transformers中的data_collator

前言 使用huggingface的Dataset加載數據集,然后使用過tokenizer對文本數據進行編碼,但是此時的特征數據還不是tensor,需要轉換為深度學習框架所需的tensor類型。data_collator的作用就是將features特征數據轉換為tensor類型的dataset。 本文…

小學語文老師重點工作

小學語文老師是學生在語言學習過程中的關鍵引導者,他們的主要職責是幫助學生建立正確的語言基礎,培養良好的閱讀習慣,并提高學生的語文素養。以下是小學語文老師的一些重點工作。 一、教授語言知識 小學語文老師首要的任務是教授學生語言知識…

《DApp開發:開啟全新數字時代篇章》

隨著區塊鏈技術的日益成熟,去中心化應用(DApp)逐漸成為數字世界的新焦點。在這個充滿無限可能的全新領域,DApp開發為創新者們提供了開啟數字時代新篇章的鑰匙。 一、DApp:區塊鏈創新成果 DApp是建立在區塊鏈技術基礎之…

C/C++ 開發SCM服務管理組件

SCM(Service Control Manager)服務管理器是 Windows 操作系統中的一個關鍵組件,負責管理系統服務的啟動、停止和配置。服務是一種在后臺運行的應用程序,可以在系統啟動時自動啟動,也可以由用戶或其他應用程序手動啟動。…

CMakeLists.txt:打印find_package變量;判斷庫文件路徑設定是否正確;install文件設置

CMake打印find_package變量;install文件設置 打印find_package找到的各種變量判斷庫文件是否被找到install文件設置install詳細說明 打印find_package找到的各種變量 目的:find_package后,想使用找到的include/lib文件夾。 find_package(Yo…

chromium通信系統-mojo系統(一)-ipcz系統基本概念

ipcz 是chromium的跨進程通信系統。z可能是代表zero,表示0拷貝通信。 chromium的文檔是非常豐富的,關于ipcz最重要的一篇官方文檔是IPCZ。 關于ipcz本篇文章主要的目的是通過源代碼去分析它的實現。再進入分析前我們先對官方文檔做一個總結,…

axios封裝和請求跨域和.gitignore文件

axios封裝 首先這部分網上找找應該一大堆,其中本人喜歡同.env文件一同配合使用; let base_url process.env.PROJECT_NAME if (process.env.NODE_ENV production){base_url process.env.PROJECT_BASEURL process.env.PROJECT_NAME// base_url http:…

Java計算兩個時間的相差年,日,小時,分,秒

主函數 public static int dateDiff(char flag, Calendar calSrc, Calendar calDes) {long millisDiff getMillis(calSrc) - getMillis(calDes);if (flag y) {return (calSrc.get(Calendar.YEAR) - calDes.get(Calendar.YEAR));}if (flag d) {return (int) (millisDiff / D…

Unity RenderFeature架構分析

自定義RenderFeature接口流程 URP內部ScriptableRenderPass分析 public、protected屬性 renderPassEvent :渲染事件發生的時刻colorAttachments :渲染的顏色紋理列表 m_ColorAttachmentscolorAttachment :m_ColorAttachments[0];depthAttac…

【網絡奇幻之旅】那年我與大數據的邂逅

🌺個人主頁:Dawn黎明開始 🎀系列專欄:網絡奇幻之旅 ?每日一句:循夢而行,向陽而生 📢歡迎大家:關注🔍點贊👍評論📝收藏?? 文章目錄 &#x1f4…

Windows 下安裝MySQL8.0 Zip

1、將下載的mysql 壓縮包解壓。 2、已管理員身份證 打開 cmd窗口,進入到解壓目錄的,本文以解壓到 D:\soft\mysql-8.0.29-winx64 為例來介紹。 3、在解壓目錄下 新建一個 my.ini 文件。 my.ini 文件內容如下: [mysqld] # 設置3306端口 por…

linux wget --no-check-certificate

如果您希望每次使用wget命令時都跳過SSL證書檢查,可以將–no-check-certificate參數添加到wget的默認配置文件中。 請按照以下步驟進行操作: vi ~/.wgetrc# 插入內容 check_certificate off保存并關閉文件。 現在,wget命令將在每次使用時自…

windows遠程linux或遠程虛擬機連接拒絕問題排查

當我們使用MobaXterm遠程連接時,報錯如下: 1.首先檢查該ubuntu防火墻是否關閉,先將防火墻關閉。 1.檢查防火墻狀態 sudo ufw status 2.開啟防火墻 sudo ufw enable 3.關閉防火墻 sudo ufw disable 2.關閉防火墻后,使用ping命令相…

【數據結構/C++】棧和隊列_順序棧

#include<iostream> using namespace std; #define MaxSize 10 // 1. 順序棧 typedef int ElemType; struct Stack {ElemType data[MaxSize];int top; } SqStack; // 初始化棧 void init(Stack &s) {// 初始化棧頂指針s.top -1; } // 入棧 bool push(Stack &s, …

什么是工業物聯網(IOT)?這樣的IOT平臺你需要嗎?——青創智通

物聯網(IOT)是指在互聯網上為傳輸和共享數據而嵌入傳感器和軟件的互聯設備的廣泛性網絡。這允許將從物理對象收集的信息(數據)存儲在專用服務器或云中。通過分析這些積累的信息&#xff0c;通過提供最優的設備控制和方法&#xff0c;可以實現一個更安全、更方便的社會。在智能家…

【完美解決】 Python pyecharts Map 地圖數據不顯示

目錄 項目場景問題描述原因分析解決方案完整代碼 項目場景 Python數據可視化&#xff0c;使用 Pyecharts.charts 模塊中的Map&#xff0c;并導入數據來構建全國疫情熱力地圖 B站 黑馬程序員 Python課程【P106 第一階段 - 第十一章 - 02全國疫情地圖構建】 問題描述 本人在學習…

vue+face-api.js實現前端人臉識別功能

近期做了一個前端vue實現人臉識別的功能&#xff0c;主要功能邏輯包含&#xff1a;人臉識別&#xff0c;人臉驗證&#xff0c;喚起攝像頭視頻流之后從三個事件&#xff08;用戶點頭、搖頭、眨眼睛&#xff09;中隨機選中兩個事件&#xff0c;待兩個事件通過判斷后人臉靜止不動3…

基于Java+Vue+uniapp微信小程序微信閱讀網站平臺設計和實現

博主介紹&#xff1a;?全網粉絲30W,csdn特邀作者、博客專家、CSDN新星計劃導師、Java領域優質創作者,博客之星、掘金/華為云/阿里云/InfoQ等平臺優質作者、專注于Java技術領域和畢業項目實戰? &#x1f345;文末獲取源碼聯系&#x1f345; &#x1f447;&#x1f3fb; 精彩專…

使用端口掃描工具解決開放端口威脅并增強安全性

從暴露網絡漏洞到成為入侵者的通道&#xff0c;開放端口可能會帶來多種風險向量&#xff0c;威脅到網絡的機密性、完整性和可用性。因此&#xff0c;最佳做法是關閉打開的端口&#xff0c;為了應對開放端口帶來的風險&#xff0c;網絡管理員依靠端口掃描工具來識別、檢查、分析…