本节课我们要处理的是临时变量。
不要着急继续开发,先来梳理一下当前状态:
1. 什么是临时变量?
在多个接口顺序执行时,前面接口返回值提取成变量,给后面接口使用。
2. 当前项目结构?
如上图,在mian_request主函数中,循环调用do_step。且传入总变量字典tmp_datas。
单个do_step在执行成功后,返回这个接口步骤自己新产生的临时变量tmp_d,然后再给塞到总临时变量字典tmp_datas中。
然后再传递给后面的do_step。
3. do_step内临时变量提取?
如上图所示,通过路径法和正则法,我们已经从返回值提取并塞到了tmp_d中,并且最终返回了tmp_d
4. 那do_step接收后,在哪替换?
接收到的tmp_datas即之前所有步骤接口累计的总变量。
我们要把这些变量,想办法替换到url , header , body 中。
而他们的占位是由用户自行设计的,比如用 #变量名#
所以我们的任务就是找出这些 #变量名# 然后用真正的值去替换掉。
url 因为都是字符串,所以我们直接替换便可以。
header是字典,内部每个值基本也都是字符串,所以直接替换也可以。
而body则比较复杂,它有各种情况。如列表,如字典,如普通字符串等等。
而我们的临时变量的值,也可能是字符串,也可能是字典,也可能是整形,也可能是列表等等。
所以在body的替换上,我们需要额外小心谨慎,再辅助让用户提取表达式的规则,才能实现成功替换。
具体的这些,我们下一节正式开始搞~