zoukankan      html  css  js  c++  java
  • Groovy基础语法!

    Groovy是什么语言?

    Groovy是一种基于JVM(Java虚拟机)的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy也可以使用其他非Java语言编写的库。

    测试中Groovy可以做什么?

    测试中Groovy可以作为上下游接口参数化传递的前置脚本和后置脚本使用。
    比如:一些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基础语法

    • groovy注释
      1、单行注释://
      2、多行注释://
      3、文档注释:/**…*/
      4、Shebang line注释:
    #!/usr/bin/env groovy
    println "Hello from the shebang line"
    
    • 关键字
    • 字符串
      1、单引号字符串:’hello world'
      单引号字符串是普通的java.lang.String,不支持EL表达式
      2、双引号字符串:”hello world”
      当双引号字符串中没有el表达式时,字符串的类型为java.lang.String,当双引号字符串中包含EL表达式时,字符串类型为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。默认情况下,创建的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数组
      Groovy定义数组的方式和定义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
    //多维数组
    def matrix3 = new Integer[3][3]         
    assert matrix3.size() == 3
    Integer[][] matrix2                     
    matrix2 = [[1, 2], [3, 4]]
    assert matrix2 instanceof Integer[][]
    

    ps注意:Groovy不支持Java数组的初始化方式

    • Map类型
      Map定义方式为:使用[]包括,里面的元素为key/value的形式,key和value以:分隔,每一对key/value以逗号分隔。Groovy穿件的map默认类型为java.util.LinkedHashMap
      static void main(String[] args){
           def colors = [jave: '学习', python: '不学习', c: '底层']
          println(colors.jave)
       }
    

    剩下的就是自己可以通过写java语法实现参数赋值及传递了。
    简单写了一个groovy参数提取demo示例如下:

    更多测试技术分享、学习资源以及一些其他福利可关注公众号:【Coding测试】获取:

    记录工作中使用的CI/CD流程
  • 相关阅读:
    BZOJ3752 : Hack
    XIV Open Cup named after E.V. Pankratiev. GP of SPb
    XIII Open Cup named after E.V. Pankratiev. GP of Ukraine
    BZOJ2087 : [Poi2010]Sheep
    BZOJ2080 : [Poi2010]Railway
    BZOJ2082 : [Poi2010]Divine divisor
    Moscow Pre-Finals Workshop 2016. National Taiwan U Selection
    XIII Open Cup named after E.V. Pankratiev. GP of Asia and South Caucasus
    XIII Open Cup named after E.V. Pankratiev. GP of Azov Sea
    XIII Open Cup named after E.V. Pankratiev. GP of SPb
  • 原文地址:https://www.cnblogs.com/CodingTest/p/15500093.html
Copyright © 2011-2022 走看看