測試中Groovy腳本可以用來做什么?

Groovy是什么語言?

Groovy是一種基于JVM(Java虛擬機)的敏捷開發(fā)語言,它結(jié)合了Python、Ruby和Smalltalk的許多強大的特性,Groovy 代碼能夠與 Java 代碼很好地結(jié)合,也能用于擴展現(xiàn)有代碼。由于其運行在 JVM 上的特性,Groovy也可以使用其他非Java語言編寫的庫。

測試中Groovy可以做什么?

測試中Groovy可以作為上下游接口參數(shù)化傳遞的前置腳本和后置腳本使用。
比如:一些md5、base64、sha-256一些加密的腳本編寫。
實例如下:

  • md5實例
Hello 測試’.md5()
‘Hello World’.bytes.md5()
DigestUtils.md5Hex('Hello 測試')
  • base64實例
'Hello 測試'.bytes.encodeBase64().toString()
new String('SGVsbG8gV29ybGQ='.decodeBase64())
  • sha-256
‘Hello 測試’.sha256()
‘Hello World’.bytes.sha256()
DigestUtils.sha256Hex('Hello 測試')

Groovy基礎(chǔ)語法

  • groovy注釋
    1、單行注釋://
    2、多行注釋://
    3、文檔注釋:/*/
    4、Shebang line注釋:
#!/usr/bin/env groovy
println "Hello from the shebang line"
  • 關(guān)鍵字


  • 字符串
    1、單引號字符串:’hello world'
    單引號字符串是普通的java.lang.String,不支持EL表達(dá)式
    2、雙引號字符串:”hello world”
    當(dāng)雙引號字符串中沒有el表達(dá)式時,字符串的類型為java.lang.String,當(dāng)雙引號字符串中包含EL表達(dá)式時,字符串類型為groovy.lang.GString
class GroovyTest {
   static void main(String[] args){
       def name = 'java'
       def greeting = "Hello ${name}"
       def  myVar = greeting;
       println(myVar)
   }
    static String testGroovy(){
        def name = 'java'
        def greeting = "Hello ${name}"
        return greeting
    }

}

3、三雙引號字符串:

   static void main(String[] args){
       def name = 'Groovy'
       def template = """
            hellow ${name},
            ${name} ->java
        """
       println(template)
   }
  • list集合
    Groovy中沒有定義自己的List類型,使用的是java.util.List類型。通過一對[]包括,里面的元素以,分隔來定義一個List。默認(rèn)情況下,創(chuàng)建的List的類型為java.util.ArrayList。
    示例:
   static void main(String[] args){
       def numbers = [1, 2, 3]
       for (int i=0;i<numbers.size();i++){
           print(numbers[i])
       }
   }

list中元素可以是不同類型

def list = [1, "a", true]

可以使用[]獲取List中的元素,可以使用<<向list末尾追加元素

def letters = ['a', 'b', 'c', 'd']
assert letters[0] == 'a'     
assert letters[1] == 'b'
assert letters[-1] == 'd'    
assert letters[-2] == 'c'
letters[2] = 'C'             
assert letters[2] == 'C'
letters << 'e'               
assert letters[ 4] == 'e'
assert letters[-1] == 'e'
assert letters[1, 3] == ['b', 'd']         
assert letters[2..4] == ['C', 'd', 'e']
  • Arrays數(shù)組
    Groovy定義數(shù)組的方式和定義list的方式一樣,只不過聲明時需要制定類型,或者通過as來強制制定類型為Array
String[] arrStr = ['java', 'python', 'c++']  
assert arrStr instanceof String[]    
assert !(arrStr instanceof List)
def numArr = [1, 2, 3] as int[]    
assert numArr instanceof int[]       
assert numArr.size() == 3
//多維數(shù)組
def matrix3 = new Integer[3][3]         
assert matrix3.size() == 3
Integer[][] matrix2                     
matrix2 = [[1, 2], [3, 4]]
assert matrix2 instanceof Integer[][]

ps注意:Groovy不支持Java數(shù)組的初始化方式

  • Map類型
    Map定義方式為:使用[]包括,里面的元素為key/value的形式,key和value以:分隔,每一對key/value以逗號分隔。Groovy穿件的map默認(rèn)類型為java.util.LinkedHashMap
  static void main(String[] args){
       def colors = [jave: '學(xué)習(xí)', python: '不學(xué)習(xí)', c: '底層']
      println(colors.jave)
   }

剩下的就是自己可以通過寫java語法實現(xiàn)參數(shù)賦值及傳遞了。
簡單寫了一個groovy參數(shù)提取demo示例如下:



更多測試技術(shù)分享、學(xué)習(xí)資源以及一些其他福利可關(guān)注公眾號:【Coding測試】獲取:

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 作者:楊龍,叩丁狼教育本文參考groovy手冊,對Groovy的基礎(chǔ)語法做一個快速介紹。 注釋 單行注釋 多行注釋...
    叩丁狼教育閱讀 10,588評論 1 1
  • 本文首發(fā)于 公眾號 劉望舒關(guān)聯(lián)系列Android Gradle系列 前言 在前面我們學(xué)習(xí)了為什么現(xiàn)在要用Gradl...
    劉望舒閱讀 1,206評論 0 1
  • 下載安裝 在mac上推薦使用SDKMAN! (The Software Development Kit Manag...
    leilifengxingmw閱讀 1,268評論 0 1
  • 16宿命:用概率思維提高你的勝算 以前的我是風(fēng)險厭惡者,不喜歡去冒險,但是人生放棄了冒險,也就放棄了無數(shù)的可能。 ...
    yichen大刀閱讀 8,244評論 0 4
  • 公元:2019年11月28日19時42分農(nóng)歷:二零一九年 十一月 初三日 戌時干支:己亥乙亥己巳甲戌當(dāng)月節(jié)氣:立冬...
    石放閱讀 7,539評論 0 2

友情鏈接更多精彩內(nèi)容