接口测试脚本中运行自定义脚本
  4koL3J55wyKx 2023年11月02日 17 0

一、Groovy(Java)脚本

Agent 是用了内置的 Groovy引擎来运行脚本,所以无需额外环境。

脚本执行前,将 response 对象传入了方法中,所以在方法中可以直接使用。

1.1、运行 hello word!

新建一个自定义脚本步骤,并将 Language 选择为 Groovy,并输入如下代码:

def test(){
    println "Hello world"
}

test()

如下图:

接口测试脚本中运行自定义脚本_python

运行套件后,能在 agent 上看到打印的 hello word!

接口测试脚本中运行自定义脚本_测试报告_02

1.2、入参

执行 Groovy 脚本的时候,将上一步的 response 对象,当参数传进了脚本,参数名是 response。

新增步骤,并输入如下代码:

def test(){
    println response.toString()
    println response.getBody()
    println response.getException()
}

test()

如下图:

接口测试脚本中运行自定义脚本_测试报告_03

运行套件后,在 agent 上看到如下图,第一行是 response.toString()、第二行是 getBody、第三行是 getException

接口测试脚本中运行自定义脚本_Groovy_04

 1.3、返回

添加如下代码:其中 ret 就是返回的内容

def test(){
	ret = "需要返回的内容:"
	ret = ret + "xxx xxx xxx"
}

test()
	ret

运行套件后,在测试报告中可以看到如下结果。

接口测试脚本中运行自定义脚本_Groovy_05

1.4、获得全局参数

执行 Groovy 脚本的时候,将全局参数对象,当参数传进了脚本,参数名是 globalParas。

代码如下:

def test(){
    println response.toString()
    println response.getBody()
    println response.getException()
    println globalParas
}

test()

如下图:

接口测试脚本中运行自定义脚本_测试报告_06

运行套件后,在测试报告中可以看到全局参数内容的打印。

接口测试脚本中运行自定义脚本_python_07

二、Python脚本

Agent 是将你在步骤中输入的 python 脚本内容,保存到文件。然后通过 python 命令运行那个文件的方式,实现的 python 脚本调用。

2.1、运行 hello word!

新建一个自定义脚本步骤,并将 Language 选择为 Python,并输入如下代码:

import sys
import os

if __name__ == '__main__':
    print("hello word!")

如下图:

接口测试脚本中运行自定义脚本_测试报告_08

 运行套件后,在测试报告中可以看到打印的 hello word!

接口测试脚本中运行自定义脚本_python_09

 2.2、入参

Agent 在执行 python 命令时,将上一步的结果当参数的方式传入到脚本。所以脚本中可以通过 sys.argv[1:][0] 的形式拿到上一步的执行结果。

新增步骤,并输入如下代码:能看到代码中将第一个参数(上一步的结果)保存到变量 response 中。

import sys
import os

if __name__ == '__main__':
    response = sys.argv[1:][0]
    print(response)

 如下图

接口测试脚本中运行自定义脚本_python_10

 

 运行套件后,在测试报告中可以看到上一步返回的结果。由于上一步是操作 redis,所以能看到 redis 返回的结果。

接口测试脚本中运行自定义脚本_python_11

 2.3、返回

2.2 演示了如何拿到上一步的结果,那该如何返回数据并给后续参数或断言使用呢?

细心的同学应该已经看到了,在执行结果中的就是返回内容,也就是脚本中的所有 print 内容都会当返回结果返回(实现原理是执行 python 命令,然后得到所有标准输出)。

接口测试脚本中运行自定义脚本_python_11

 

 2.4、获得全局参数

Agent 在执行 python 命令时,将全局参数当第二个参数的方式传入到脚本。所以脚本中可以通过 sys.argv[1:][1]的形式拿到全局参数。

代码如下:

import sys
import os

if __name__ == '__main__':
    globalParas = sys.argv[1:][1]
    print(globalParas)

如下图

接口测试脚本中运行自定义脚本_python_13

 运行套件后,在测试报告中可以看到全局参数。

接口测试脚本中运行自定义脚本_测试报告_14

 

 

 

 



【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
4koL3J55wyKx