Jmeter使用介紹

文章目錄

  • 前言
  • Jmeter簡介
    • 安裝與配置
      • JDK安裝與配置
      • JMeter安裝與配置
    • 打開JMeter
      • 方式一
      • 方式二
    • 設置Jmeter語言為中文
      • 方法一(僅一次性)
      • 方法二(永久設置成中文)
    • Jmeter文件常用目錄
  • 元件與組件
    • 元件
    • 組件
    • 元件的作用域
    • 元件的執行順序
    • 第一個案例
      • 添加線程組
      • 添加 HTTP 請求
      • 添加查看結果樹
      • 響應結果亂碼問題
    • 線程組
      • 并行與串行
      • 線程組的分類
      • 線程組參數詳解
    • HTTP請求
      • HTTP請求參數詳解
    • 查看結果樹
    • HTTP信息頭管理器
    • HTTP請求默認值
    • HTTP Cookie管理器(HTTP Cookie Manager)
    • 參數化
      • 用戶定義變量(全局變量)
      • 用戶參數
      • CSV數據文件方式
        • CSV數據文件設置參數詳解
    • 函數
      • 計數器${__counter(,)}
    • 斷言
      • 響應斷言
      • JSON斷言
      • 斷言持續時間
    • Jmeter關聯
      • 正則表達式提取器
      • XPath提取器
      • JSON提取器
      • Jmeter屬性
    • Jmeter錄制腳本(僅作介紹)
    • Jmeter直連數據庫
    • 邏輯控制器
      • 如果(if)控制器
      • 循環控制器
      • Foreach控制器
    • 定時器
      • 同步定時器
      • 常數吞吐量定時器
      • 固定定時器
  • 參考目錄


前言

閱讀本文前請注意最后編輯時間,文章內容可能與目前最新的技術發展情況相去甚遠。歡迎各位評論與私信,指出錯誤或是進行交流等。


Jmeter簡介

JMeter是一個純Java編寫的開源軟件,主要用于進行接口測試和性能測試。它支持測試的應用/服務/協議包括Web (HTTP, HTTPS)、SOAP/REST Webservices、FTP、Database via JDBC等。我們最常使用的是HTTP和HTTPS協議。

安裝與配置

JDK安裝與配置

因為jmeter是java開發的,所以運行的時候必須先要安裝jdk才可以。請注意,Jmeter對于JDK的版本有一定的要求,可以在下文Jmeter下載地址中查看,一般要求Java 8+。關于JDK的安裝與配置請各位自行資料,網上已有圖片配合的詳細安裝教程。

JMeter安裝與配置

下載地址:Apache JMeter - Download Apache JMeter

在這里插入圖片描述

打開JMeter

注意:不管用使用哪一種方式打開,都會打開一個cmd窗口。如果關閉這個cmd窗口,打開的jmeter也會被關閉。

方式一

Jmeter下載后無需安裝,解壓后即可使用。解壓后到其apache-jmeter/bin目錄如下,雙擊jmeter.bat 即可以運行。
在這里插入圖片描述

方式二

配置環境變量,利用cmd控制臺打開Jmeter。有需求的朋友請自行上網查閱資料進行配置。

設置Jmeter語言為中文

雖然Jmeter自帶的翻譯并不準確,但由于網上大部分的博客以及學習資料都是中文語言的Jmeter。因此,建議將Jmeter設置為中文。

方法一(僅一次性)

在這里插入圖片描述

方法二(永久設置成中文)

找到jmeter下的bin目錄,打開jmeter.properties 文件
在這里插入圖片描述
第三十七行,修改為language=zh_CN,并去掉前面的#。重新啟動Jmeter即可
在這里插入圖片描述

Jmeter文件常用目錄

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

元件與組件

Jmeter進行接口測試和性能測試,并不是使用代碼來實現。而是使用已經封裝好的元件和組件進行操作。

元件

元件:多個具有類似功能的組件的容器(集合,類似于面向對象中的類)
在這里插入圖片描述
Jmeter中的元件按功能分為這么多類,如上圖所見。例如 取樣器元件,其中的組件主要功能都是發送請求。

組件

組件:實現獨立的某個功能(類似于方法)
在這里插入圖片描述
例如,取樣器中的組件都是用于發送請求的。但HTTP請求是用于發送HTTP請求的,JDBC Request組件是用于連接數據庫 并進行發送請求的。

元件的作用域

在這里插入圖片描述
圖中,如果(if)控制器與線程組3是父子關系。該如果(if)控制器只會對其父節點
如圖,如果(if)控制器是HTTP請求2的父節點會對其起作用。注:如果(if)控制器屬于邏輯控制器元件,HTTP請求屬于取樣器元件。

固定定時器是HTTP請求3的子節點,該定時器只對HTTP請求3起作用。
固定定時器1的父節點是線程組(并不是取樣器),那么其作用域就是該線程組下的所有節點。

圖中的例子僅供理解與學習,現實的腳本設計不會如此混亂。

元件的執行順序

在這里插入圖片描述

第一個案例

在這里插入圖片描述

添加線程組

右鍵點擊“測試計劃” -> 添加 -> 線程(用戶) -> 線程組,添加測試需要的線程組
在這里插入圖片描述

添加 HTTP 請求

JMeter的HTTP請求是測試中常用的功能,用于模擬用戶向服務器發送HTTP請求并獲取響應。

右鍵點擊線程組 -> 添加 -> 取樣器 -> HTTP請求,添加一個HTTP請求
在這里插入圖片描述
點擊HTTP請求,輸入請求所需信息 http://www.baidu.com/s?ie=utf-8&wd=jmeter 參考下圖
在這里插入圖片描述

添加查看結果樹

JMeter 的結果查看樹用于查看和分析HTTP請求的響應結果。

右鍵點擊線程組 -> 添加 -> 監聽器 -> 查看結果樹,添加一個查看結果樹
在這里插入圖片描述
將查找下方的響應數據格式改為 HTML Source Formatted(自行指定響應數據的展現格式),點擊上方的綠色三角按鈕,運行http請求

運行結果如下

取樣器結果
在這里插入圖片描述
HTTP響應體內容為,搜索返回結果頁面標題為“JMeter性能測試_百度搜索”,與之前設置的查詢參數相吻合。
在這里插入圖片描述

響應結果亂碼問題

在這里插入圖片描述

注:從此處開始介紹一些常用的元件和組件,其余沒有提到的元件和組件可自行查閱資料和查看Jmeter自帶文檔學習

線程組

作用:控制JMeter將用于執行測試的線程數,也可以把一個線程理解為一個測試用戶。
在這里插入圖片描述

并行與串行

在這里插入圖片描述
如上圖可知,我們設置了三個線程組。且內部有不同的HTTP請求,從執行結果來看。HTTP請求發送順序是隨機的,并不是按照從上到下的順序。因此,多個線程組默認是并行的。

在這里插入圖片描述
點擊測試計劃,勾選獨立運行每個線程組(例如在一個組運行結束后啟動下一個),即可實現串行。

線程組的分類

在這里插入圖片描述
即,Setup線程組會在其他所有線程組之前執行,Teardowm會在其他所有線程組之后執行。

線程組參數詳解

在這里插入圖片描述

HTTP請求

作用:向服務器發送HTTP和HTTPS請求
位置:選中線程組->右鍵->添加->取樣器->HTTP請求

HTTP請求參數詳解

在這里插入圖片描述
在這里插入圖片描述
注:如果要一次性添加多個參數,可以將參數的鍵值對復制到剪切板,點擊窗口最下方的從剪切板添加按鈕即可批量添加參數。

查看結果樹

作用:查看HTTP請求的請求和響應結果
位置:選中測試計劃/線程組->右鍵->添加->監聽器->查看結果樹
注:對于取樣結果 尤其是響應數據 我們可以通過切換數據展現方式進行查看,例如圖中默認的是Text方式,可以點擊切換成想要的方式 例如HTML Json等格式
在這里插入圖片描述

HTTP信息頭管理器

作用:給HTTP請求添加請求頭信息,信息頭即請求頭。
位置:點擊HTTP請求->右鍵->添加->配置元件->HTTP信息頭管理器

添加方式與HTTP請求的查詢參數方式相同, 也是用鍵值對的方式表示。

HTTP請求默認值

作用:針對HTTP請求中的相同部分(例如:協議、IP地址、端口、編碼格式)進行統一設置
位置:測試計劃->右鍵->添加->配置元件->HTTP請求默認值
在這里插入圖片描述

HTTP Cookie管理器(HTTP Cookie Manager)

作用:如果你有一個 HTTP 請求,其返回結果里包含一個 cookie,那么 Cookie 管理器會自動將該 cookie 保存起來,而且以后所有的對該網站的請求都使用同一個 cookie
位置:右鍵 -> 添加 -> 配置元件 -> HTTP Cookie管理器
在這里插入圖片描述

選項(Options)

(1)每次反復清除Cookies?:每次迭代時,都將 Cookies 清空

(2)Use Thread Group configuration to control cookie clearing:用戶線程組去配置清空 Cookie

(3)Cookie 格式

standard:標準格式

standard-strict:嚴格格式

ignoreCookies:此規格忽略所有 Cookie。被用來防止 HttpClient 接受和發送的 Cookie

netscape:是最原始的 Cookies 規范,同時也是 RFC2109 的基礎。盡管如此,還是在很多重要的方面與 RFC2109 不同,可能需要特定服務器才可以兼容

default:默認

rfc2109:是 HttpClient 使用的默認 Cookies 協議

rfc2965:定義了版本2并且嘗試去彌補在版本1中 Cookie 的 rfc2109 標準的缺點。規定 rfc2965 最終取代 rfc2109 發送 rfc2965 標準 Cookies 的服務端,將會使用 Set-Cookie2 header 添加到 Set-Cookie Header 信心中,rfc2965 Cookies 是區分端口的

compatibility:推薦選擇此種策略。這種兼容性設計要求是適應盡可能多的不同的服務器,盡管不是完全按照標準來實現的。如果你遇到了解析 Cookies 的問題,你就可能要用到這一個規范。有太多的 web 站點是用 CGI 腳本去實現的,而導致只有將所有的 Cookies 都放入 Request header 才可以正常的工作。這種情況下最好設置 http.protocol.single-cookie-header 參數為 true

存儲在Cookie管理器中的Cookie:表示已經存儲的Cookie,用戶也可以手動添加

參數化

參數化測試:把測試數據組織起來,用不同的測試數據調用相同的測試方法,實現測試數據與測試方法的分離。

用戶定義變量(全局變量)

作用:定義全局變量
位置:測試計劃/線程組–>配置元件–>用戶定義的變量

變量聲明也是用鍵值對的方式表示。
在這里插入圖片描述

使用方法:在需要變量處,使用${變量名}引用。
在這里插入圖片描述

用戶參數

假設有多個用戶同時請求, 每個用戶在登錄請求時需要不同的用戶名和密碼進行登錄,可以使用用戶參數。

作用:針對同一種方法,當不同的用戶來訪問時,可以獲取到不同的值。
位置:線程組–>前置處理器–>用戶參數

在這里插入圖片描述
添加變量(變量可多個),用戶即是變量的值。
在這里插入圖片描述
由于有兩個用戶,我們將線程組的線程數改為2,模擬兩個用戶。
在這里插入圖片描述
隨后建立HTTP請求,訪問百度。并在參數中引用用戶參數,使用方法也是${變量名}。
創建查看結果數后運行。
在這里插入圖片描述
在這里插入圖片描述
從結果看,一共發送了兩次請求,兩次請求引用的參數分別就是設置好的兩個用戶參數。

CSV數據文件方式

作用:在多次循環中,取到不同的值。
位置:線程組—>配置元件—>CSV數據文件設置(CSV Data Set Config)

CSV數據文件設置參數詳解

在這里插入圖片描述
使用步驟:

  1. 定義csv文件
    在這里插入圖片描述

  2. 添加線程組,設置循環次數為3(根據CSV文件的行數來確定,該例子為3)
    在這里插入圖片描述

  3. 添加CSV數據文件設置,文件名選擇CSV文件路徑即可。變量名稱用于Jmeter中引用,可自行指定,并不要求與CSV文件中的嚴格相同。由于我們定義的CSV首行是數據,所以不忽略首行。分隔符CSV文件中使用的是逗號
    在這里插入圖片描述

  4. 添加HTTP請求并引用參數,引用參數的方法同樣是${變量名}
    在這里插入圖片描述

  5. 添加查看結果數并執行

函數

Jmeter內部已定義好了一些函數供用戶使用,函數格式為雙下劃線開頭,后面跟著函數名稱,且函數名稱嚴格區分大小寫。

位置:Jmeter菜單欄->工具->函數助手對話框

以下為一些常用的函數
${__counter(,)} 計數器
${__dateTimeConvert(,)} 時間格式轉換
${__digest(,)} 加密 簡單加密 *****
${__intSum(,)} 整數相加函數
${__P(,)} 獲取屬性函數 *****
${__property(,)} 獲取屬性函數 *****
${__setProperty(,)} 設置屬性函數 *****
${__Random(,)} 隨機數
${__RandomString(,)} 隨機字符串
${__threadNum} 獲取線程號函數
${__time(,)} 獲取當前時間戳函數 *****
${__timeShift(,)} 數據格式化
${__V(,)} 拼接函數 *****

本文以計數器函數為例進行介紹,其他函數以及具體用法可以參考網絡資料以及Jmeter自帶的文檔。

計數器${__counter(,)}

在函數助手對話框中選擇counter函數,點擊生成,即可獲得計數器函數表達式${__counter(,)}。且生成了一個從1開始的計數器函數,初始值從1開始
在這里插入圖片描述
添加一個訪問百度的HTTP請求,且引用計數器函數。使用方法在參數中直接引用
${__counter(,)},并將線程組循環次數進行調整。此處例子將循環次數設置為10
在這里插入圖片描述
點擊執行并查看結果,從結果樹中我們可以看到。進行了10次請求,且每次引用的參數即計數器函數每次遞增。
在這里插入圖片描述

注意:計數器函數每次遞增只能加1,若想用遞增加2或遞增更多的時候,需要使用配置原件中的 “計數器”;

斷言

斷言:讓程序自動判斷實際結果是否與預期結果一致

響應斷言

作用:對HTTP請求的任意格式的響應結果進行斷言
位置:測試計劃->線程組->HTTP請求->右鍵->添加->斷言->響應斷言

在這里插入圖片描述
在這里插入圖片描述
忽略狀態是復選框,由于Jmeter會自動判斷狀態碼,并將例如400等狀態碼判為錯誤。假如我們就是要模擬錯誤,就選擇忽略狀態。
在這里插入圖片描述
在這里插入圖片描述
如果填寫了多個預期結果,他們是邏輯與的關系。

JSON斷言

作用:對HTTP請求的JSON格式的響應結果進行斷言
位置:測試計劃->線程組->HTTP請求->右鍵->添加->斷言->JSON斷言
在這里插入圖片描述
在這里插入圖片描述
Assert JSON Path exists:填寫JSON元素所在的路徑,$為根節點。例 $.weatherinfo.city,斷言根節點下的weatherinfo節點,weatherinfo節點下的city節點值。

Additionally assert value:勾選之后,才能填寫Expected Value(期望值)。即JSON節點的值與期望值進行對比是否相等,如果此外還勾選了Match as regular expression,則在期望值框里輸入正則表達式,進行對比結果。

斷言持續時間

作用:測試HTTP請求的響應時間是否滿足需求
位置:測試計劃->線程組->HTTP請求->右鍵->添加->斷言->斷言持續時間
在這里插入圖片描述

Jmeter關聯

當請求之間有關聯, 比如一個請求的參數是另一個請求的響應數據,這時候就需要用到關聯處理來進行提取響應數據中的值。

正則表達式提取器

作用:針對任意格式的響應結果進行提取
位置:測試計劃->線程組->HTTP請求->右鍵->添加->后置處理器->正則表達式提取器

關于正則表達式如何書寫,有需要的朋友請自行上網查閱。此外,可以用網頁版的正則表達式測試器來判斷自己所書寫的正則表達式是否正確。

在這里插入圖片描述
在這里插入圖片描述
模板中提到的正則表達式中的多個提取值,指的是 如果正則表達式中有多個(),也就是一次匹配中提取多個值,要取第一個()中的值,就填寫數字幾 且前后用$符號。

匹配數字指的是,正則表達式匹配到多組數值,取多組數值中的哪一個。
假如有多組數據,匹配數字為-1,那就是全部取值,那么引用參數中存儲的是一個列表形式,
在引用列表中其中一個參數,格式是${變量名_索引}

XPath提取器

作用:針對HTML格式的響應數據進行提取
位置:測試計劃->線程組->HTTP請求->右鍵->添加->后置處理器->XPath提取器
在這里插入圖片描述
在這里插入圖片描述

JSON提取器

作用:針對JSON格式的響應數據進行提取
位置:測試計劃->線程組->HTTP請求->右鍵->添加->后置處理器->JSON提取器
在這里插入圖片描述
在這里插入圖片描述

Jmeter屬性

作用:當有關聯的兩個請求不在同一個線程組中時,可以使用Jmeter屬性進行數據傳遞。
位置:測試計劃->線程組->右鍵->添加->取樣器->BeanShell取樣器

要使用BeanShell取樣器進行屬性設置, 要搭配其他的提取器和函數助手進行使用。
工作流程:提取器將數據提取后保存到變量中,通過_setProperty函數將提取器提取的變量值保存到Jmeter屬性中,在要使用該Jmeter屬性的地方通過_property函數引用。
在這里插入圖片描述
設置函數_setProperty,這里表示Jmeter屬性的變量名稱為pro_city,其值為${city}(該值一般由提取器提取),點擊生成函數。
在這里插入圖片描述
使用函數_property,在屬性名稱中輸入要使用的Jmeter屬性,點擊生成即可。The result of the function is 表示pro_city中值是什么。

操作步驟

  1. 添加線程組1
  2. 在線程組1下添加HTTP請求
  3. 添加JSON提取器(僅作演示)將HTTP請求響應結果 提取存為變量city
  4. 添加BeanShell取樣器 利用函數_setProperty,將JSON提取器變量city 設置為Jmeter屬性
    在這里插入圖片描述
  5. 添加線程組2
  6. 在線程組2下添加HTTP請求(并讀取Jmeter屬性)

在這里插入圖片描述

Jmeter錄制腳本(僅作介紹)

用于在沒有API文檔時,編寫HTTP請求。Jmeter作為代理服務器,攔截和轉發請求與響應數據。(功能與抓包工具一樣)

在這里插入圖片描述
在這里插入圖片描述

Jmeter直連數據庫

使用場景

  1. 請求需要的參數, 從數據庫中獲取
  2. 斷言的預期結果從數據庫中獲取
  3. 清理接口測試后所留下的測試數據
  4. 通過數據庫獲取大量的測試數據

操作步驟,以mysql數據庫為例
在這里插入圖片描述
位置:測試計劃->線程組->右鍵->添加->配置元件->JDBC Connection Configuration
在這里插入圖片描述
在這里插入圖片描述
Password:連接數據庫密碼,如實填寫
配置完成后,相當于連接數據庫成功,接下來就要執行SQL語句。

添加JDBC請求
位置:測試計劃->線程組->右鍵->添加->取樣器->JDBC Request
在這里插入圖片描述
在這里插入圖片描述
通過JDBC Request的SQL語句將返回結果存在變量里,在要使用的地方通過${變量名_索引}的方式進行引用

邏輯控制器

如果(if)控制器

作用:控制它下面的Jmeter組件是否運行
位置:測試計劃->線程組->右鍵->添加->邏輯控制器->if控制器
在這里插入圖片描述
利用JS語法的方式書寫,表示判斷 變量name是否等于itcast 且注意要加雙引號 并不勾選下面的Interpret Condition as Variable Expression

在這里插入圖片描述

循環控制器

作用:通過設置循環次數,實現循環發送請求
位置:測試計劃->線程組->右鍵->添加->邏輯控制器->循環控制器
在這里插入圖片描述
思考:線程組也可以設置循環次數,為什么還要使用循環控制器?
答:線程組會使其下的所有HTTP請求循環一定次數,循環控制器會使其下的HTTP請求循環一定次數。他們兩的作用范圍不同,循環控制器可實現更精準的范圍控制。
此外,假設線程組設置了循環M次, 其下循環控制器又設置了循環N次, 那么循環控制器下的HTTP請求會循環執行 M*N 次

Foreach控制器

作用:遍歷變量中的值(值以列表的方式存在),搭配正則表達式提取器等進行使用。
位置:測試計劃->線程組->右鍵->添加->邏輯控制器->Foreach控制器
在這里插入圖片描述
由上文的正則表達式提取器內容可知,如果變量值是列表形式,那么使用其中的某個值則是${變量名_索引}。所以 變量名即是輸入變量前綴,且在提取的時候要添加下劃線。因此需要勾選Add’_’ before number ?

如果列表是用戶自定義的數據,沒有下劃線 而是${變量名索引}的方式 那就取消勾選。

要循環使用Foreach控制器提取的變量 通過${輸出變量名稱}引用

定時器

同步定時器

作用:先阻塞線程,當在規定時間內達到一定的線程數量后,這些線程會在同一時間點一起釋放,瞬間產生很大的壓力,用于模擬高并發場景。
位置:測試計劃->線程組->右鍵->添加->定時器->Synchronizing Timer
在這里插入圖片描述
在這里插入圖片描述
此處,設置的并發線程數應該為小于等于線程數n,如果大于的話 則取n。

常數吞吐量定時器

作用:讓Jmeter按照指定的吞吐量執行, 以每分鐘為單位,大多用于模擬系統穩定運行下的吞吐量,進行穩定測試。
位置:測試計劃->線程組->右鍵->添加->定時器->Constant Throughout Timer
在這里插入圖片描述

固定定時器

作用:讓其父節點等待設定的時間后運行。
位置:測試計劃->線程組->右鍵->添加->定時器->固定定時器
在這里插入圖片描述

本文關于Jmeter的部分使用介紹就到此為此了, 關于更多的Jmeter使用方法請各位自行查閱資料,或者參考Jmeter自帶文檔。


參考目錄

https://blog.csdn.net/u014045237/article/details/143368211
https://blog.csdn.net/cool_tao6/article/details/142441207
https://blog.csdn.net/qq_45138120/article/details/130478599
https://www.bilibili.com/video/BV12Q4y1C7Wf
https://www.bilibili.com/video/BV19Q4y167Qo
https://www.bilibili.com/video/BV1Ne411M7Gb

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

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

相關文章

【NLP 32、文本匹配任務 —— 深度學習】

大劫大難以后,人不該失去銳氣,不該失去熱度,你鎮定了卻依舊燃燒,你平靜了卻依舊浩蕩,致那個從絕望中走出來的自己,共勉 —— 25.1.31 使用深度學習在文本匹配任務上主要有兩種方式:① 表示型 ②…

發展史 | 深度學習 / 云計算

注:本文為來自 csdn 不錯的“深度學習 / 云計算發展史 ” 相關文章合輯。 對原文,略作重排。 深度學習發展史(1943-2024 編年體)(The History of Deep Learning) Hefin_H 已于 2024-05-23 15:54:45 修改 …

通領科技沖刺北交所

高質量增長奔赴產業新征程 日前,通領科技已正式啟動在北交所的 IPO 進程,期望借助資本市場的力量,加速技術升級,推動全球化戰略布局。這一舉措不僅展現了中國汽車零部件企業的強大實力,也預示著行業轉型升級的新突破。…

TCP/IP 5層協議簇:網絡層(ICMP協議)

1. TCP/IP 5層協議簇 如下: 和ip協議有關的才有ip頭 2. ICMP 協議 ICMP協議沒有端口號,因為不去上層,上層協議采用端口號

RISC-V匯編學習(三)—— RV指令集

有了前兩節對于RISC-V匯編、寄存器、匯編語法等的認識,本節開始介紹RISC-V指令集和偽指令。 前面說了RISC-V的模塊化特點,是以RV32I為作為ISA的核心模塊,其他都是要基于此為基礎,可以這樣認為:RISC-V ISA 基本整數指…

C語言 —— 愿此世如黃金般輝煌 - 進制轉換與操作符詳解

目錄 1. 操作符的分類 2. ?進制和進制轉換 2.1 2進制轉10進制 2.2 10進制轉2進制 2.3 2進制轉8進制 2.4 2進制轉16進制 3. 原碼、反碼、補碼 4. 移位操作符 4.1 左移操作符 4.2 右移操作符 5. 位操作符:&、|、^、~ 5.1 & 按位與 5.2 | 按位或 …

docker1

前言 技術架構 單機架構 應用數據分離架構 應用服務集群架構 讀寫分離/主從分離架構 寫入主的時候,要同步Mysql從的數據才可以 冷熱分離架構 寫的時候要寫入主和緩存數據庫 讀的時候先去緩存看有沒有,沒有的話就去從數據庫讀數據 主要就是看這個數據是…

Spring Boot整合ArangoDB教程

精心整理了最新的面試資料和簡歷模板,有需要的可以自行獲取 點擊前往百度網盤獲取 點擊前往夸克網盤獲取 一、環境準備 JDK 17Maven 3.8Spring Boot 3.2ArangoDB 3.11(本地安裝或Docker運行) Docker啟動ArangoDB docker run -d --name ar…

從離散迭代到連續 常微分方程(Ordinary Differential Equation, ODE):梯度流

從離散迭代到連續 ODE:梯度下降與梯度流的奇妙聯系 在機器學習和優化領域,我們常常使用離散的迭代算法(如梯度下降)來求解目標函數的最優解。然而,你是否想過這些離散步驟背后可能隱藏著連續的動態?常微分…

常見的 Git 命令

基礎配置和信息查詢 (Setup and Information) git config --global user.name “Your Name”: 配置全局用戶名,用于 Git 提交記錄。 git config --global user.email “your.emailexample.com”: 配置全局用戶郵箱,同樣用于 Git 提交記錄。 git confi…

深度解析:視頻軟編碼與硬編碼的優劣對比

視頻編碼 一、基本原理與核心技術 壓縮原理 通過時空冗余消除實現數據壓縮: 空間冗余:利用幀內預測(如DC/角度預測)消除單幀內相鄰像素相似性。時間冗余:運動估計與補償技術(ME/MC)減少連續幀間…

藍耘智算 + 通義萬相 2.1:為 AIGC 裝上 “智能翅膀”,翱翔創作新天空

1. 引言:AIGC 的崛起與挑戰 在過去幾年中,人工智能生成內容(AIGC)技術突飛猛進。AIGC 涉及了文本生成、圖像創作、音樂創作、視頻制作等多個領域,并逐漸滲透到日常生活的方方面面。傳統的內容創作方式已經被許多人類創…

行為模式---中介者模式

概念 中介者模式是一種行為模式, 他的核心思想是通過引入一個中介者對象,將多個對象之間的復雜交互邏輯統一管理。每個對象只需要與中介者通信,而不需要直接與其他對象交互,從而降低系統的耦合度。 適用場景 對象之間交互復雜&…

百度移動生態事業群聚焦UGC戰略,貼吧迎新調整

易采游戲網3月8日獨家消息:近日據內部消息人士透露,百度移動生態事業群正積極將用戶生成內容(UGC)作為新的戰略重點。此舉標志著百度對UGC價值的重視與重塑,同時也預示著其旗下重要平臺——百度貼吧將迎來一輪重大的調…

C#模擬鼠標點擊,模擬鼠標雙擊,模擬鼠標恒定速度移動,可以看到軌跡

C#模擬鼠標點擊,模擬鼠標雙擊,模擬鼠標恒定速度移動,可以看到軌跡 using System; using System.Collections.Generic; using System.Linq; using System.Runtime.InteropServices; using System.Text; using System.Threading.Tasks;namespa…

QGIS提取全國景區經緯度的完整流程

一、數據獲取與預處理 數據來源選擇 全國A級景區數據可從各省文化和旅游廳官網、國家文化和旅游部網站或第三方GIS數據平臺獲取。推薦使用2020-2021年更新的矢量數據(shp格式)或Excel表格,其中包含景區名稱、地址、等級及WGS84經緯度信息。例…

如何進行postgreSQL專家認證

進行 PostgreSQL 專家認證主要有信創 PostgreSQL 認證和中國 PostgreSQL 考試認證等方式,以下以信創 PostgreSQL 認證為例介紹具體步驟: 了解認證體系 信創 PostgreSQL 認證由工信部人才交流中心組織及頒發證書,包括以下三個級別:…

【前端】【webpack-dev-server】proxy跨域代理

參考:https://www.bilibili.com/video/BV1c5SnYZEnZ?spm_id_from333.788.videopod.episodes&vd_source65c8707649747fd67b232866b69a5ebd&p138

批量在 Word 的指定位置插入頁,如插入封面、末尾插入頁面

我們經常會碰到需要在 Word 文檔中插入新的頁面的需求,比如在 Word 文檔末尾插入一個廣告頁、給 Word 文檔插入一個說明封面,在 Word 文檔的中間位置插入新的頁面等等。相信這個操作對于大部分小伙伴來說都不難,難的是同時給多個 Word 文檔插…

在Windows 11的WSL中安裝Kali Linux

Kali Linux 是網絡安全從業者和愛好者的首選工具集,但直接在物理機或虛擬機上運行可能占用較多資源。借助 Windows Subsystem for Linux (WSL),我們可以在Windows 11中原生運行Kali Linux,輕量且高效。本教程將手把手教你如何在WSL2中安裝并配…