課程:B站大學
記錄軟件測試-性能測試學習歷程、掌握前端性能測試、后端性能測試、服務端性能測試的你才是一個專業的軟件測試工程師
Jmeter之Groovy語言
- Groovy簡介
- 為何性能測試中選擇Groovy
- windows下載Groovy
- 進入官網
- 配置環境變量
- Groovy的數據類型
- groovy的保留字
- 字符串
- 1. 單引號字符串 (Single-quoted strings)
- 雙引號字符串 (Double-quoted strings)
- 三引號字符串 (Triple-quoted strings)
- 字符串插值 (String interpolation)
- 數值類型
- byte 字節型
- char 字符型
- short 短整型
- int 整型
- long 長整型
- java.math.BigInteger 無限精度型
- 小數型
- double(雙精度浮點型)?
- java.math.BigDecimal(高精度小數)?
- 類型自動轉換示例?
- 不同類型數值進行算術運算的規則
Groovy簡介
roovy 是一種基于 JVM(Java 虛擬機)的動態/靜態混合編程語言,語法與 Java 高度兼容,同時融合了腳本語言的靈活性和現代語言特性(如閉包、元編程等)。
為何性能測試中選擇Groovy
Groovy在性能測試中因兼具接近Java的執行效率(尤其靜態編譯時)與腳本化的高效開發能力,可快速構建靈活的測試邏輯,尤其適合復雜場景的自動化驗證。
知識點:Groovy易于掌握,動態語言,運行速度快,兼容java
windows下載Groovy
進入官網
進入:https://groovy.apache.org/download.html
點擊download下載,下載完成后解壓文件
配置環境變量
打開Window下環境變量設置窗口,新建一個名為GROOVY HOME的環境變量,變量的值是解壓后Groovy sdk的目錄
path變量
驗證:環境變量配置成功
安裝完成后,在bin目錄下有一個GroovyConsole.bat文件,雙擊打開,可以在里面編寫并執行Groovy程序。
這里我用groovy自帶的編譯器,其實用idea會方便一些。
這里我選擇用idea創建項目,會方便很多。
Groovy約等于java,且更加簡潔。
Groovy的數據類型
groovy的保留字
abstract | assert | break | case |
---|---|---|---|
catch | class | const | continue |
def | default | do | else |
enum | extends | final | finally |
for | goto | if | implements |
import | instanceof | interface | native |
new | null | non-sealed | package |
public | protected | private | return |
static | strictfp | super | switch |
synchronized | this | threadsafe | throw |
throws | transient | try | while |
字符串
Groovy提供了多種靈活的字符串表示方式,比Java更加簡潔和強大。以下是Groovy中字符串的主要類型和使用方法:
1. 單引號字符串 (Single-quoted strings)
- 最簡單的字符串表示方式
- 不支持插值和轉義字符(除
\
本身) - 類似于Java的字符串
def str1 = 'Hello World'
println str1 // 輸出: Hello World
雙引號字符串 (Double-quoted strings)
- 支持字符串插值(String interpolation)
- 支持轉義字符
- 如果字符串不包含插值表達式,則與單引號字符串相同
def name = "Groovy"
def str2 = "Hello ${name}" // 字符串插值
println str2 // 輸出: Hello Groovydef path = "C:\\Program Files\\Groovy"
println path // 輸出: C:\Program Files\Groovy
三引號字符串 (Triple-quoted strings)
- 支持多行字符串
- 保留字符串中的換行和縮進
- 雙三引號支持插值,單三引號不支持
// 單三引號(不支持插值)
def str3 = '''Line 1
Line 2
Line 3'''
println str3// 雙三引號(支持插值)
def user = "張三"
def str4 = """用戶: ${user}
年齡: 25"""
println str4
字符串插值 (String interpolation)
- 只在雙引號和雙三引號字符串中有效
- 使用${expression}語法
- 可以包含任意Groovy表達式
def a = 10
def b = 20
def str5 = "a + b = ${a + b}"
println str5 // 輸出: a + b = 30def date = new Date()
def str6 = "當前時間: ${date.format('yyyy-MM-dd')}"
println str6
總結:
字符串名稱 | 語法 | 是否可以混用 | 是否多行 | 轉義字符 |
---|---|---|---|---|
單引號的 | '...' | ? | ? | \ |
三個單引號的 | '''...''' | ? | ?? | \ |
雙引號的 | "..." | ?? | ? | \ |
三個雙引號的 | """...""" | ?? | ?? | \ |
斜線的 | /.../ | ?? | ?? | \ |
數值類型
Groovy的數值型包括整數型(Integer)和小數型(decimal)兩種,整型又包括以下幾種:
byte 字節型
byte b = 127 // byte 范圍: -128 到 127
println "byte 值: ${b}, 類型: ${b.getClass().name}"
char 字符型
byte b = 127 // byte 范圍: -128 到 127
println "byte 值: ${b}, 類型: ${b.getClass().name}"
short 短整型
short s = 32767 // short 范圍: -32768 到 32767
println "short 值: ${s}, 類型: ${s.getClass().name}"
int 整型
int i = 2147483647 // int 范圍: -2^31 到 2^31-1
println "int 值: ${i}, 類型: ${i.getClass().name}"
long 長整型
long l = 9223372036854775807L // long 范圍: -2^63 到 2^63-1,需加 'L' 后綴
println "long 值: ${l}, 類型: ${l.getClass().name}"
java.math.BigInteger 無限精度型
import java.math.BigInteger
BigInteger bi = new BigInteger("123456789012345678901234567890")
println "BigInteger 值: ${bi}, 類型: ${bi.getClass().name}"
小數型
double(雙精度浮點型)?
double d = 3.141592653589793 // double 是默認的浮點類型
println "double 值: ${d}, 類型: ${d.getClass().name}"
java.math.BigDecimal(高精度小數)?
import java.math.BigDecimalBigDecimal bd = new BigDecimal("123.45678901234567890")
println "BigDecimal 值: ${bd}, 類型: ${bd.getClass().name}"
類型自動轉換示例?
int intValue = 100
long longValue = intValue // int 自動轉換為 long
println "int -> long: ${longValue}, 類型: ${longValue.getClass().name}"double doubleValue = longValue // long 自動轉換為 double
println "long -> double: ${doubleValue}, 類型: ${doubleValue.getClass().name}"
不同類型數值進行算術運算的規則
對于二元運算符,兩個不同類型的數值進行運算后它們的結果按照以下規則確定:
- 對于byte、char、short、int這幾種類型之間運算的結果為int。
- 涉及long與byte、char、short、int之間運算的結果為long。
- 涉及BigInteger與其它類型數值之間的運算結果為BigInteger。
- BigDecimal與byte、char、short、int之間的運算結果為BigDecimal。
- float、double與BigDecimal之間的運算結果為double。
- 兩個BigDecimal之間的運算結果為BigDecimal。