脚本与公共函数
当参数化配置无法满足业务需求,用户可以通过自定义脚本或者公共函数实现复杂逻辑。
自定义脚本
请求结果断言、前置处理器和后置处理器均可编写自定义脚本。如果整个测试场景都想通过代码实现可在步骤中添加自定义脚本
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、请求头、请求体、请求参数、请求结果断言、前置处理器、后置处理器等。
在填写接口请求信息时,可通过公共函数选择所需的函数
点击”复制“,然后在所需要函数的编辑框”粘贴“即可。