.teardown_hook("${get_field_codetype($response)}")
.validate()
.assert_equal("status_code", 200)
其中.teardown_hook 的 get_field_codetype() 会返回一个字典类型的参数
问题 1:怎么接收这个参数
问题 2: 怎么传入下个 Step 的.with_json 中
把获取的参数设置成一个环境变量,下个接口获取一下
这个方法是传入这次请求的 response,在 debugtalk.py 里处理这个 response 并返回了一个字典,所以不知道怎么处理这个参数
jmspath 了解一下?可以这么写:第一个接口节选
.with_headers(
*{
"Host": "${ENV(host)}",
"Accept": "application/json, text/javascript, */; q=0.01",
"User-Agent": "Mozilla/5.0 (Macintosh;,
"X-Requested-With": "XMLHttpRequest",
"Referer": "http://${ENV(host)}",
"Accept-Encoding": "gzip, deflate",
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
}
)
.extract()
.with_jmespath("headers.Cookie", "cookie")
.with_jmespath("body.user.employeeId","operatorId")
.with_jmespath("body.employee.orgId","orgId")
第二个接口用 RunTestCase 的方法 export 出这些变量
Step(
RunTestCase("TestLogin")
.call(login)
.export(*["cookie", "operatorId", "orgId"])
),
嗯嗯,理解这种方法,但是我这个参数不是请求返回的,而是我调用一个方法返回的,.teardown_hook("${get_field_codetype($response)}") 其中 get_field_codetype($response) 返回了一组数据,我想传到下一个 step 里
把 response 保存起来作为变量(先不处理),在下一个 step 的变量定义中通过调用函数(当前步骤的调用函数操作放到这里)后返回值的值赋值给变量就可以使用了。
这个 hook 返回了"a_response",怎么在下一个 step 中引用,并且它是字典类型,我需要用 key 取值
return 字典本身,例如 return {"a":1,"b":"abc"} 试试
我使用的老版本看的 demo,不知道最新版本是否支持这种做法。
对于你这种情况:
步骤 1:直接保存 response 为某个变量 a。
步骤 2:在接下来的步骤中调用 debugtalk.py 中自定义的函数,参数就是步骤 1 中保存的变量 a. 函数返回值就是自己需要的值即可。