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流程
  • 相关阅读:
    Nginx配置文件nginx.conf中文详解
    PHP SOCKET编程 .
    当一个变量只能通过引用传递的时候。
    PHP-Socket-阻塞与非阻塞,同步与异步概念的理解
    PHP里的socket_recv方法解释
    jQuery获取Select选择的Text和 Value
    使用 cacti 批量监控服务器以及其 PHP 运作环境配置
    windows 和 linux 上 循环读取文件名称的区别和方法
    php 在linux 用fopen() 函数打开,file_get_contents(),fread()函数 读取 另外一台服务器映射过来的文件 总是返回false,null的情况。
    【问题解决】小数点前面不显示0的问题
  • 原文地址:https://www.cnblogs.com/CodingTest/p/15500093.html
Copyright © 2011-2022 走看看