.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. 函数返回值就是自己需要的值即可。
老哥,用你的方法已解决,谢谢大家解惑