1. 后台测试
  2. 测试场景
  3. 脚本与公共函数

脚本与公共函数

当参数化配置无法满足业务需求,用户可以通过自定义脚本或者公共函数实现复杂逻辑。

自定义脚本

请求结果断言、前置处理器和后置处理器均可编写自定义脚本。如果整个测试场景都想通过代码实现可在步骤中添加自定义脚本

Java/Groovy脚本Demo


内置变量:在函数和自定义脚本里均内置了如下系统变量:

内置对象 方法 对象描述
vars vars.put(“key”,”value”) :定义字符串变量keyvars.get(“key”) : 读取公共变量key的值vars.putObject(“key”,list) : 定义对象变量vars.getObject(“key”) : 读取对象变量 用于读写变量,用该对象定义的字符串变量,均可以通过${key}的方式在任意地方读取
SampleResult SampleResult.getResponseDataAsString() 获取请求回包。SampleResult.getResponseCode() 获取响应码SampleResult.getRequestBody() 获取请求体SampleResult.getRequestHeaders() 获取请求头SampleResult.getResponseHeaders() 获取响应头 用于当前请求的后置处理和断言
ResponseCode 字符串类型 响应状态码,默认值是:200,可以用于自定义断言,改变此值会影响断言的判断
IsSuccess 布尔型 断言判定是否成功:默认值是:true,用于自定义断言的判断成功与否,与ResponseCode、ResponseMessage搭配使用,能够不写断言,起到自定义断言的效果
utestlog utestlog.info(“test”)utestlog.error(“test”) 用于打印日志,具体信息会输出到用户日志里
sysResourcePath 用于获取系统资源文件根路径,例如:String path =sysResourcePath+”/resourceFile/3052e6c86e5b03f38626025feb10df80.xml”;return path;
jni jni.Run(0,params):执行so中export的run方法,第一个参数是so的编号,第二个参数为传入so库的参数;jni.SetLogger(0,level):执行so中export的SetLogger方法,第一个参数是so的编号,第二个参数为level级别;jni.Teardown(0,params):执行so中export的Teardown方法,第一个参数是so的编号,第二个参数为传入so库的参数;jni.Setup(0,params):执行so中export的Setup方法,第一个参数是so的编号,第二个参数为传入so库的参数 用于加载so库的方法,例子:初始化so的日志级别:jni.SetLogger(0,”info”);调用so的run方法:jni.Run(0,”{‘a’:’hello’}”);

Python脚本Demo


自定义函数必须以main函数名定义,参数可以通过上面的“脚本入参”选项设置或者通过ctx进行变量传参
脚本入参支持以下类型
1.字符串
2.变量(在前续步骤定义的变量,用${}进行引用)
3.JSON

公共函数

平台会提供一部分常用函数,如果不满足业务需求可创建自定义函数,目前函数支持的脚本语言为 Groovy,JavaScript,Java

公共函数定义


注意: 如果函数需要入参,必须填写对应的 参数名称、参数描述、参数类型和参数默认值。

公共函数调试


点击 调试 按钮,可查看调试返回结果
注意: 如果函数已设置入参,点击调试按钮,可通过弹窗修改入参的数值,方便校验函数有效性。


当函数校验无误后,方可点击 保存并启用 按钮,公共函数列表将新增一条自定义函数。该函数仅在当前项目可见。

公共函数引用


在测试场景中多处可引用公共函数,其中包括:全局变量、全局请求配置、链路变量、链路请求配置、请求URL、请求头、请求体、请求参数、请求结果断言、前置处理器、后置处理器等。
在填写接口请求信息时,可通过公共函数选择所需的函数

点击”复制“,然后在所需要函数的编辑框”粘贴“即可。