本节开始之前先感谢有同学反馈并主动过修复的一个bug:就是在某些接口的返回值中,中文会显示乱码的问题
我们找到views.py中调试层发送接口的函数
Api_send
然后看到它最后一行,就是把返回值直接给到前端的代码:
return HttpResponse(response.text)
之所以中文会出现乱码,就是在这里没有进行任何处理。所以按照如下方式修改即可解决问题:
好,回归主题,让我们继续自动异常测试功能的开发。
打开P_apis.html,找到这个div:
我们虽然已经写好了大概,但是还少了俩个按钮,一个开始测试,一个关闭。
所以给加上:
效果如下:好的我们先简单的把关闭功能写完:
刷新测试确实可以关闭,就继续往下做。
现在我们打开div的js函数error_test,要加上自动显示该接口名称的代码:
(别忘了加上颜色)
效果如下:
然后继续,我们貌似落下了一个重要的函数,就是清除数据的初始化函数。在我们打开新的弹层时,为了不显示上一个接口的数据,所以要进行调用初始化函数。 但是这里我们要想一想,我们之前的做法是把这个div中所有的输入框全部清空即可,这样做的前提是这个div中的输入框固定且都有自己的id。
但是这个异常测试的div比较特殊,最顶部展示接口id的small标签无需清空,下面的待替换数据也永远显示默认的几个待替换数据。再下面的就是各个替换规则后自动生成的多行文本框。而不同的接口下面的这些替换具体条也完全不同,我们要做的不是清空这些多行文本框,而是要删除这些文本框。
但是删除要怎么删除呢?我们可以在自动生成的时候,给每一个文本框都加上一个name,然后删除的时候用一个循环遍历所有该name的文本框即可。但是如果真的达到几百个文本框。那么删除它们所浪费的时间必然不少。有没有简便设计呢?当然有:
就是我们直接把这个div的初始html写死,只要打开就抛弃之前一切html,直接按照写死的新html来展示即可。
我们来刷新一下 打开看看效果:
看来是成功了,但是这里写起来很麻烦么?其实很简单,我们只需要开始时候写成这样:
然后去复制html的一大段:
然后回来 把光标放在俩个引号之间:
粘贴,它就会自动换行和拼接了。
好了,本节内容到此为止,需要下载源码的同学请移步到:
接口测试平台系列 进行下载