使用测试上下文
测试上下文可用于在测试用例之间传递数据和存放自定义参数。
首先要在测试脚本中声明一个用于测试上下文使用的结构体。 例如在下面的代码示例中,声明了一个命名为 Context
的结构体类型,并且在该类型中定义了一个字段叫 BaseUrl
用于存放请求的API的基础 URL。
type Context struct {
BaseUrl string
}
在 Export 方法输出的 map 中的键值 context
是保留字,用于向系统输出测试上下文的初始值。
func Export() map[string]interface{} {
return map[string]interface{}{
"context": Context{
BaseUrl: "https://jsonplaceholder.typicode.com",
},
"SimpleCase": SimpleCase,
}
}
在测试用例的入参中声明一个为 Context
指针类型的参数,系统就会自动将测试上下文注入该参数:
func SimpleCase(ctx *Context, client *json.Client) {
_ = client.R().Get(fmt.Sprintf("%s/todos/1", ctx.BaseUrl))
time.Sleep(5 * time.Second)
}
在上面的代码片段中调用 API 的URL将基于测试上下文中保存的基础 URL 生成。
代码示例
import (
"fmt"
"github.com/l6p/utils/client/json"
"time"
)
type Context struct {
BaseUrl string
}
func SimpleCase(ctx *Context, client *json.Client) {
_ = client.R().Get(fmt.Sprintf("%s/todos/1", ctx.BaseUrl))
time.Sleep(5 * time.Second)
}
func Export() map[string]interface{} {
return map[string]interface{}{
"context": Context{
BaseUrl: "https://jsonplaceholder.typicode.com",
},
"SimpleCase": SimpleCase,
}
}