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