本文开始,全局变量 要正式进入 复杂的后台实现了,当然如果能跟到这里,那么也应该没什么难度。
这里还是要重申一下,代码出现问题请先仔细比对教程源码
本节课我们先实现 在 接口库接口弹层来进行下手,在下手之前我们先要想好几个设计上的问题:
- 全局变量应用在哪些地方?
答:接口库接口调试,异常测试,登陆态接口,用例库具体接口步骤 这几处。
2. 全局变量怎么在上述地方去插入应用?
答:应用插入,需要使用特殊标记的占位符,所有区域应统一风格。但因用例库中多接口直接的返回值插入功能 和 本功能 类似,所以风格必须区分,否则进行替换特殊占位符的时候,遇到同名变量,就不知道该去替换的是前一个接口的返回值还是全局变量了。那么我们将要 对其 插入的特殊标记占位符做出一个合理的设计。
因为用例库的接口返回值占位符用的是:#变量名#
所以全局变量在所有模块的占位符就用: ~变量名~
这里小伙伴可以自行设计,有更好的提议可以跟我说,一经采用,红包奉上。
3. 具体实现的数据流?
答:拿接口库接口调试来举例,前端P_apis.html 把带有~变量名~全局变量的用户请求体,后台views.py中 对其进行了整理和实际发送(如果是用例库则还要去run_case.py中) 我们在请求体获取后,实际发送之前,进行替换全局变量的过程,具体步骤就是先验证当前项目的生效的 几个变量组,然后把其中的json数据拿出来用updata方式组成一个,然后用正则方式从 host/url/请求头/请求体中 找到要替换的字段名,也就是变量名。然后去json中拿到对应的值,找不到就直接返回给前端报错信息即可。
这个替换过程可能会很麻烦。所以我们 最好组件化,写一个公共的替换方法,把 host/url/请求头/请求体中 扔进去,然后给你返回 替换后的。虽然这个方法比较复杂,但是只要写的很好很稳定和健壮,考虑好容错性等因素,注释写好,那么后面会非常省心。
好,设计上暂时就先水到这里了,牛b的同学已经开始自己尝试实现了。下节课我们会按部就班的实现了哦~