1. 接下来就嵌入到接口库调试层中吧。
关于这里的设计呢?就不能按照之前全局请求头的设计了,因为全局请求头是可以多选的,但是全局域名只能单选。
打开P_apis.html, 找到调试层的html代码。
这个选择全局域名的功能,个人觉得放在那个自动弹出的下拉列表最好。因为它和其他全局域名 还有 其他普通域名 都是互斥的关系,也就是混在一起,任选其一。
所以代码中找到那个控制下拉列表的datalist,给它填上公共域名:
{% for i in project_host %}
<option id="project_host_{{ i.id }}" value="全局域名-{{ i.id }}">{{ i.name }}: {{ i.host }}</option>
{% endfor %}
看看效果:
保存时候发现保存失败,那是因为之前写的js判断有问题:
这里无论是保存 还是 运行,都会报这个错误信息。因为现在增加了全局域名,所以要在这俩函数的过滤中,让他们不要过滤掉全局域名:
保存:
发送:
现在刷新页面再试,发现可以正常保存了。
2. 接下来照例去用例库中去这么改:
用例库的views.py中,上节没有给传入全局域名的数据,这里补上:
然后打开P_cases.html改动:
然后进行测试,发现也可以正常选择和保存全局域名就算成功了:
首页不用,因为首页没有项目
4. 实际修改
实际去后台进行修改,让全局域名可以真实生效,目前接口库接口和用例库步骤,保存的host中,若是全局域名,前面四个字符一定是:“全局域名”
所以后台函数依此来进行识别,若是全局域名,则用“-”进行分割,取后面的域名id,去项目全局域名表中找到它,把它的host拿出来使用即可。这样每次都是去拿最新的,保证了域名一变,所有接口都跟着变的简单操作。
实际测试中,用例或接口经常因为切换环境导致域名变化,所以这里就完美解决来切换环境的问题了。
首先打开views.py,先搞定接口库接口调试的部分:
# 处理域名host
if ts_host[:4] == '全局域名':
project_host_id = ts_host.split('-')[1]
ts_host = DB_project_host.objects.filter(id=project_host_id)[0].host
print(ts_host)
特意加了句print,实际请求看看 这时候的host是不是全局域名内容。首先看看全局域名设置:
接口选择了:
进行请求,后台输出:
看来没问题。再测试,当改成第二个全局域名时:
看来切换很成功。此时选的是第二个全局域名,这时候去修改第二个全局域名的内容如下:
再打开这个接口请求:
嗯,结果显示非常正确。别忘了删除掉这个print。
然后去搞定用例库用例运行,也就是打开run_case.py,修改demo函数:
好了,写好后,自己可以简单测试下。这应该没什么问题。
到此,全局域名就正式结束了。欢迎小伙伴们提出宝贵建议和设计。
下节去追加一种全新的请求体类型:GraphQL ,请关注。