测试中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

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测试】获取:

你可能感兴趣的:(测试中Groovy脚本可以用来做什么?)