接口测试平台代码实现87: 全局请求头-2

简介: 书接上回,我们已经在数据库中手动创建了俩个公共请求头。所以本节的主要任务是要让这俩个请求头显示在前端上。

首先我们找到进入接口库的后端views.py中的控制数据的函数:child_json。给它添加上请求头的数据。微信图片_20220625143736.png

  然后打开P_apis.html,找到我们相应的请求头设置代码:微信图片_20220625143743.png

我们接下来要在里面先写个for循环来显示出这俩个请求头:微信图片_20220625143751.png

 <div id="header_plan">
      {% for i in project_header %}
          <input type="text" value="{{ i.name }}" style="width: 20%;margin-top: 3px" placeholder="请求头name"> = {"
          <input type="text" value="{{ i.key }}" style="width: 15%" placeholder="请求头key"> " : "
          <input type="text" value="{{ i.value }}" style="width: 50%" placeholder="请求头value"> "}
          <br>
      {% endfor %}
  </div>

看看效果:微信图片_20220625143757.png

显示功能我们已经搞定了。然后是 新增。我们就创建一个新增按钮。微信图片_20220625143805.png

它的onclick直接写好。然后我们去创建这个新增js函数:微信图片_20220625143811.png

function add_project_header() {
    var header_plan = document.getElementById('header_plan');
    var i1 = document.createElement('input');
    i1.style='width: 20%;margin-top: 3px';
    i1.placeholder='请求头name';
    var i2 = document.createElement('input');
    i2.style='width: 15%';
    i2.placeholder='请求头key';
    var i3 = document.createElement('input');
    i3.style='width: 50%';
    i3.placeholder='请求头value';
    header_plan.appendChild(i1);
    header_plan.appendChild(document.createTextNode(' = {" '));
    header_plan.appendChild(i2);
    header_plan.appendChild(document.createTextNode(' " : " '));
    header_plan.appendChild(i3);
    header_plan.appendChild(document.createTextNode(' "}'));
    header_plan.appendChild(document.createElement("br"));
}

所用知识全是已经学过的。看看效果:微信图片_20220625143817.png

注意这里的新增功能,只是用js在前端 增加了空input框,并没有真实的去修改数据库,一刷新就没了。


接下来我们做保存功能:

保存功能我们就遍历所有这个输入框,然后成为数组传递给后端。如果name是空的,那么直接抛弃掉后面的key-value,当做删除功能了。

   但是我们要靠什么东西一下获取到所有的input框呢?很显然,是name,name属性可以重复,我们可以用getElementsByname方法直接获取到所有。

但是目前我们的这些input并没有name,所以我们要先加上name属性。

微信图片_20220625143825.png微信图片_20220625143832.png

之后我们在js方法中会有一个按照name数量进行的大循环,每次循环一行3个input,判断如果第一个input也就是name不为空,那么就添加到我们最终要发送给后端的数据中。微信图片_20220625143840.png我们获取了 所有的input,并且新建了准备发送用的空列表。然后进行大循环,其中判断如果name框非空,则给这三个空列表都添加上数据。最后打印一下这三个数组列表看看效果:

微信图片_20220625143849.png微信图片_20220625143858.png

然后我们写一个请求传递给后端后就算ok;

微信图片_20220625143951.png

这里我们也要加上project.id,不然后台不知道是给哪个项目更新公共请求头

完整可复制版本:

function project_header_save() {
    var names = document.getElementsByName('header_name');
    var keys = document.getElementsByName('header_key');
    var values = document.getElementsByName('header_value');
    var req_names= [];
    var req_keys=[];
    var req_values=[];
    for(var i=0;i<names.length;i++){
        if(names[i].value != ''){
            req_names.push(names[i].value);
            req_keys.push(keys[i].value);
            req_values.push(values[i].value);
        }
    }
    $.get('/save_project_header/',{
        "project_id":"{{ project.id }}",
        "req_names":req_names.toString(),
        "req_keys":req_keys.toString(),
        "req_values":req_values.toString()
    },function (ret) {
        document.location.reload();
    })
}

然后我们去urls.py中写好对应微信图片_20220625144001.png

然后去后台views.py中写好对应函数微信图片_20220625144033.png

这里我们因为传输的时候 把列表转变成了字符串。所以这里我们打印一下,看看这个字符串是什么样的,以便我们再变回列表:

重启服务,刷新页面,保存请求头:

微信图片_20220625144052.png

很显然,js自动用英文逗号拼接了这个数组列表,所以我们一会给反编译回来就行,很简单。

代码上我们用一个循环遍历即可:

微信图片_20220625144102.png


重启服务,运行试试:

微信图片_20220625144139.png

上图中,修改了旧的俩个的key和value,然后新增的有个空白行和俩个正常的。然后我们点击保存。

然后再次打开:

微信图片_20220625144149.png

看到这个效果,就代表实现成功了!


增加/删除/修改 功能于一身的设计看来比较不错。


好了本节就到这结束,下节课我们要让这些公共请求头实际可以添加到接口库和用例库中使用了。

相关文章
|
26天前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
24 1
|
2月前
|
资源调度 测试技术 Linux
一款接口自动化神器—开源接口测试平台Lim(Less is More)
一款接口自动化神器—开源接口测试平台Lim(Less is More)
126 2
|
2月前
|
测试技术
包含用例执行时间的测试报告代码
包含用例执行时间的测试报告代码
|
29天前
|
缓存 运维 Serverless
应用研发平台EMAS产品常见问题之测试检查更新没有反应如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
1月前
|
机器学习/深度学习 人工智能 监控
视觉智能平台常见问题之体验产品的美颜测试关掉如何解决
视觉智能平台是利用机器学习和图像处理技术,提供图像识别、视频分析等智能视觉服务的平台;本合集针对该平台在使用中遇到的常见问题进行了收集和解答,以帮助开发者和企业用户在整合和部署视觉智能解决方案时,能够更快地定位问题并找到有效的解决策略。
23 1
|
1月前
|
Java 测试技术
单元测试编写可测试代码
单元测试编写可测试代码
19 2
|
2月前
|
测试技术
Lim测试平台测试报告说明
Lim测试平台测试报告说明
32 2
|
2月前
|
SQL 测试技术 数据库连接
Lim接口测试平台-接口测试功能详解
Lim接口测试平台-接口测试功能详解
40 1
|
2月前
|
SQL 监控 测试技术
Lim测试平台变量使用规则介绍
Lim测试平台变量使用规则介绍
27 0
|
2月前
|
测试技术
使用Lim测试平台快速完成批量造数
使用Lim测试平台快速完成批量造数
31 1