测试中Groovy脚本可以用来做什么? groovy脚本

日期: 栏目:常识 浏览:10

测试中Groovy脚本可以用来做什么? 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 groovyprintln "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() == 3Integer[][] matrix2matrix2 = [[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测试】获取:

本文地址:https://caijingdemo.com/changshi/37147.html

标签: