性能測試-groovy語言1

課程: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的保留字

abstractassertbreakcase
catchclassconstcontinue
defdefaultdoelse
enumextendsfinalfinally
forgotoifimplements
importinstanceofinterfacenative
newnullnon-sealedpackage
publicprotectedprivatereturn
staticstrictfpsuperswitch
synchronizedthisthreadsafethrow
throwstransienttrywhile

字符串

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。

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

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

相關文章

天邑TY1613_S905L3SB_安卓9-高安非-高安版-通刷-TTL線刷固件包

天邑TY1613_S905L3SB_安卓9-高安非-高安版-通刷-TTL線刷固件包刷機說明:本固件為TTL刷機方式,需要準備如下工具;電烙鐵TTL線刷機優盤TTL接觸點位于處理器左側,從上往下數第二腳GND、3TXD、4RXD跑碼工具-【工具大全】-putty跑碼工具…

【硬件-筆試面試題】硬件/電子工程師,筆試面試題-7,(知識點:晶體管放大倍數計算)

目錄 1、題目 2、解答 3、相關知識點 晶體管的電流分配關系 直流電流放大系數\(\overline{\beta}\) 交流電流放大系數\(\beta\) 晶體管的放大條件 總結 【硬件-筆試面試題】硬件/電子工程師,筆試面試題匯總版,持續更新學習,加油&…

力扣-152.乘積最大子數組

題目鏈接 152.乘積最大子數組 class Solution {public int maxProduct(int[] nums) {int[] dpMax new int[nums.length]; //包括nums[i]的乘積最大值int[] dpMin new int[nums.length]; //包括nums[i]的乘積最小值int res nums[0];dpMax[0] nums[0];dpMin[0] nums[0];fo…

HTTP/1.0、HTTP/1.1 和 HTTP/2.0 主要區別

一句話總結 HTTP/1.0: 短連接,每次請求都需要建立一個新的 TCP 連接,性能較差。HTTP/1.1: 長連接,默認開啟 Keep-Alive,連接可復用,解決了 1.0 的大部分問題,是目前使用最廣泛的版本。HTTP/2.0: 二進制、多…

Navicat 17.3 正式發布 | 現已支持達夢、金倉和 IvorySQL 數據庫

🚀🚀🚀 Navicat 很高興地宣布:Navicat 17.3 版本正式發布。此次更新包含多項突破性功能,包括新增對達夢、金倉和 IvorySQL 等數據庫的支持,全面強化 AI 功能并新增阿里通義千問等 AI 大模型,同…

前端性能新紀元:Rust + WebAssembly 如何在瀏覽器中實現10倍性能提升(以視頻處理為例)

前端性能新紀元:Rust WebAssembly 如何在瀏覽器中實現10倍性能提升(以視頻處理為例) JavaScript,作為 Web 開發的基石,是動態的、靈活的,但在性能上,它也存在著天生的“軟肋”。對于那些計算密…

Web前端:JavaScript find()函數內判斷

🎯 find是什么?find() 是 JavaScript 數組(Array)提供的一個內置方法,用于在數組中查找第一個滿足條件的元素。簡單來說:它像偵探一樣遍歷數組,找到第一個符合條件的成員就返回它。?? 核心作用…

MySQL詳解三

MySQL詳解三事務ACID特性原子性一致性隔離性持久性事務的隔離級別讀未提交(Read Uncommitted)讀已提交(Read Committed)可重復讀(Repeatable Read)串行化(serializable)MVCC聚集索引的隱藏列read view鎖全局…

ABQ-LLM:用于大語言模型的任意比特量化推理加速

溫馨提示: 本篇文章已同步至"AI專題精講" ABQ-LLM:用于大語言模型的任意比特量化推理加速 摘要 大語言模型(LLMs)在自然語言處理任務中取得了革命性的進展。然而,其實際應用受到巨大的內存與計算開銷的限制…

kafka的shell操作

Kafka 提供了豐富的 shell 命令工具,位于 Kafka 安裝目錄的 bin/ 目錄下(Windows 系統為 bin/windows/)。這些命令用于管理主題、生產者、消費者、分區等核心組件。以下是常用的 Kafka shell 操作大全:一、主題(Topic&…

client-go: k8s選主

快速上手 下面這個代碼就是一個選主的大概邏輯 package mainimport ("context""flag""fmt"_ "net/http/pprof""os""path/filepath""time""golang.org/x/exp/rand"v1 "k8s.io/api/core/v…

為什么Java的String不可變?

為什么Java的String不可變? 場景: 你在開發多線程用戶系統時,發現用戶密碼作為String傳遞后,竟被其他線程修改。這種安全隱患源于對String可變性的誤解。Java將String設計為不可變類,正是為了解決這類核心問題。 1??…

在Ubuntu上使用QEMU學習RISC-V程序(1)起步第一個程序

文章目錄一、 引言二、 環境準備三、編寫簡單的RISC-V程序四、 編譯步驟詳解五、使用QEMU運行程序六、程序詳解七、退出QEMU八、總結附錄:QEMU中通過UTRA顯示字符工作原理1、內存映射I/O原理2、add.s程序工作流程3、關鍵指令解析4、QEMU模擬的UART控制器5、為什么不…

R擬合 | 一個分布能看到三個峰,怎么擬合出這三個正態分布的參數? | 高斯混合模型 與 EM算法

1. 效果已知數據符合上圖分布,怎么求下圖的三個分布的參數mu, sigma,及每個分布的權重 lambda? 2. 代碼: 高斯混合模型(Gaussian Mixture Model,簡稱GMM) library(mixtools) set.seed(123) # 確保結果可重復…

Excel自動分列開票工具推薦

軟件介紹 本文介紹一款基于Excel VBA開發的自動分列開票工具,可高效處理客戶對賬單并生成符合要求的發票清單。 軟件功能概述 該工具能夠將客戶對賬單按照訂單號自動拆分為獨立文件,并生成可直接導入發票清單系統的標準化格式。 軟件特點 這是一款體…

【自用】JavaSE--Stream流

概述獲取Stream流集合的stream流集合名.stream( );collection集合List集合與Set集合都屬于Collection集合,因此可以直接調用stream方法獲取stream流,示例如下結果>map集合map集合存在鍵值對,因此無法使用該方法直接獲取stream流&#xff0…

【Elasticsearch】快照與恢復功能詳解

《Elasticsearch 集群》系列,共包含以下文章: 1?? 冷熱集群架構2?? 合適的鍋炒合適的菜:性能與成本平衡原理公式解析3?? ILM(Index Lifecycle Management)策略詳解4?? Elasticsearch 跨機房部署5?? 快照與恢…

技嘉z370主板開啟vtx

技嘉z370vtx應該默認就是開啟狀態,雖然主板開啟的vtx但是系統默認設置會導致vtx不能使用 1. 關閉hyper-V,Windows虛擬機監控程序平臺,虛擬機平臺 控制面板->程序->啟用或關閉windows功能 2.以管理員身份運行CMD bcdedit /set hypervisorlaunchtype off 3.…

Springmvc的自動解管理

中央轉發器&#xff08;DispatcherServlet&#xff09;控制器視圖解析器靜態資源訪問消息轉換器格式化靜態資源管理一、中央轉發器Xml無需配置<servlet><servlet-name>chapter2</servlet-name><servlet-class>org.springframework.web.servlet.Dispatc…

C#_定時器_解析

問題一:這里加lock是啥意思?它的原理是, 為什么可以鎖住? private readonly Timer _timer;/// <summary>/// 構造函數中初始化定時器/// </summary>public FtpTransferService(){// 初始化定時器_timer new Timer(_intervalMinutes * 60 * 1000);_timer.Elapsed…