接口测试平台代码实现129: 全局变量-8

简介: 接口测试平台代码实现129: 全局变量-8

我们在上一节中,搞定了全局变量的增删改查功能。


现在我们来梳理和回忆一下,这个功能整个的设计。

微信图片_20220705213807.png

如图,我准备先设置俩组变量。这里要明确一个概念,每个按钮代表的是一个变量组,而不是一个变量,一个用户可以拥有多套变量组,每组内可包含多个变量。用户在之后的使用时,可以对具体的项目,设置生效的变量组。生效后,该项目的接口中引入的变量,才会去该变量组中找到对应的值。这点设计和postman类似。

   

所以,针对每个项目,我们都需要增加一个字段,该字段包含了该项目可以生效的变量组的id。


这个设计,同样也需要前后端共同配合实现。其中前端我们就设计成,用户通过具体项目进入全局变量设置页面的时候,带着项目所生效的变量组id,然后在所有变量组上通过可选框等体现出来。


首先我们去models.py中 对项目表增加字段:

微信图片_20220705213814.png

然后运行同步命令:

微信图片_20220705213820.png

在我们之前的设计中,项目的所有数据在进入全局变量页面时都已经带着了,所以我们现在直接去global_data.html 中进行实现即可:

微信图片_20220705213826.png

如上图,我在每个变量组按钮后都加上了个多选框,以此来显示和设置 是否在此项目中生效。注意,其中的id和value都是变的,借助i.id让每个变量组都不同。而其中的name是固定的,所有都用的一个。所以我们后续的js代码中可以用getElementsByName  方法来一次性拿到所有框。

看下效果:

微信图片_20220705213832.png

针对此框,我们要做的是俩件事:

  1. 根据带进来的项目数据,来判断是否选中
  2. 用户点击选中或取消时,请求后台真实的进行变更数据库。


首先来完成第一件事:

微信图片_20220705213838.png

该端代码中 判断一个字符串是否在一个数组列表中运用了jq的 $.inArray方法,这种简单的判断如果在js中还是很麻烦的。

可复制:

<script>
      if("{{ project.global_datas }}" != "None" && "{{ project.global_datas }}" != ""){
          if( $.inArray(  "{{ i.id }}", "{{ project.global_datas }}".split(',') ) != -1 ){
              document.getElementById('check_{{ i.id }}').checked = 'checked'
          }
      }
</script>

如上图,我在循环内 都插入了一个小型的js代码,让其判断当前项目的公共变量是否是空或None,如果不是,则判断当前循环内的这个变量组的id是否在 列表格式的 项目生效变量组id的列表中。如果存在,则拼接成这个变量组多选框的id并把其变为选中状态。


我们来测试下:

用例1:当前项目属于旧项目,更改的表结构产生的新字段 是否会报错:

结果没有报错,通过。


用例2:新创建的项目,进入该页面是否报错:

结果也没报错,通过。


用例3:当前项目中是正常的选中了第一个变量组:

我们得首先去后台给该项目手动写一个global_datas来方便测试。所以记下现在的变量组1的id 然后去后台设置:

微信图片_20220705213845.png

如果是多个则用英文逗号存储,不过后续的存储全是我们自动js负责,所以也不会出现错误也不用人去手动。

效果如下:

微信图片_20220705213851.png

可以看到,显示效果已经成功了。


接下来我们要做的是,点击选中/不选中 的自动保存。


首先我们先来给所有的这个check_input增加一个 点击更改内容就触发js函数的 属性:onchange,顾名思义,和onclick都差不多哦。

微信图片_20220705213857.png

我们在下面写个叫change_check()的函数,当任意多选框被点击后,这个函数就会触发:微信图片_20220705213904.png

写好后我们就要实现它了, 逻辑很简单,当被触发后,它就去统计最新的选择情况,然后连同项目id,一起发给后台,让后台更新数据库后,它在刷新本页面 即可实现效果。

代码如下:

微信图片_20220705213910.png

function change_check() {
        // 获取所有选中的checkbox的值 组成列表 chk_value
        var chk_value =[];
        $('input[name="check_names"]:checked').each(function(){
        chk_value.push($(this).val());
        }); //依然是jq的方法
        // 把结果发送给后台
        $.get("/global_data_change_check/",{
            "project_id":"{{ project.id }}",
            "global_datas": chk_value.toString()
        },function (ret) {
            document.location.reload()
        })
    }

代码中依然使用了 $开头的 jquery的写法,大家可以学习下。


然后我们去urls.py中:

微信图片_20220705213923.png

最后是views.py:

微信图片_20220705213933.png

然后我们重启服务,刷新页面开始测试:

微信图片_20220705214048.png

可以看到已经可以正常的 选中 取消 等操作了。

相关文章
|
2月前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
35 1
|
14天前
|
jenkins Devops 测试技术
单元测试与质量保证:确保Visual Basic代码的健壮性
【4月更文挑战第27天】在VB开发中,单元测试是保证代码质量和软件健壮性的关键。本文介绍了单元测试的基础,包括其定义和好处,如提高代码质量、促进重构。接着,讨论了MSTest、NUnit和xUnit等VB单元测试工具。遵循TDD原则和最佳实践,编写独立、有针对性的测试,并注重测试速度和覆盖率。通过示例展示了如何在Visual Studio中设置和运行测试。最后,提到了持续集成和自动化测试工具,如Jenkins和静态代码分析工具,以提升软件开发效率和质量。单元测试不仅是技术手段,更是提升团队协作和软件工程水平的文化体现。
|
2天前
|
消息中间件 测试技术 Linux
linux实时操作系统xenomai x86平台基准测试(benchmark)
本文是关于Xenomai实时操作系统的基准测试,旨在评估其在低端x86平台上的性能。测试模仿了VxWorks的方法,关注CPU结构、指令集等因素对系统服务耗时的影响。测试项目包括信号量、互斥量、消息队列、任务切换等,通过比较操作前后的时戳来测量耗时,并排除中断和上下文切换的干扰。测试结果显示了各项操作的最小、平均和最大耗时,为程序优化提供参考。注意,所有数据基于特定硬件环境,测试用例使用Alchemy API编写。
9 0
linux实时操作系统xenomai x86平台基准测试(benchmark)
|
2天前
|
传感器 Linux 测试技术
xenomai 在X86平台下中断响应时间测试
该文讨论了实时操作系统中断响应时间的重要性,并介绍了x86中断机制和Xenomai的中断管理,包括硬件中断和虚拟中断的处理。Xenomai通过I-Pipe确保实时性,中断优先级高的Xenomai先处理中断。文中还提到了中断响应时间的测试设计,分别针对I-Pipe内核间虚拟中断和硬件中断进行了测试,并给出了在不同负载下的测试结果。
8 0
xenomai 在X86平台下中断响应时间测试
|
7天前
|
测试技术
使用CLion创建Cmake项目,使用GoogleTest和GoogleMock对代码进行测试
使用CLion创建Cmake项目,使用GoogleTest和GoogleMock对代码进行测试
19 3
|
10天前
|
Linux 测试技术 数据安全/隐私保护
CentOS安装MeterSphere并实现无公网IP远程访问本地测试平台
CentOS安装MeterSphere并实现无公网IP远程访问本地测试平台
|
12天前
|
SQL DataWorks Java
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决
DataWorks是阿里云提供的一站式大数据开发与治理平台,支持数据集成、数据开发、数据服务、数据质量管理、数据安全管理等全流程数据处理。在使用DataWorks过程中,可能会遇到各种操作报错。以下是一些常见的报错情况及其可能的原因和解决方法。
26 1
DataWorks操作报错合集之在阿里云 DataWorks 中,代码在开发测试阶段能够成功运行,但在提交后失败并报错“不支持https”如何解决
|
18天前
|
人工智能 监控 数据处理
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
【AI大模型应用开发】【LangSmith: 生产级AI应用维护平台】1. 快速上手数据集与测试评估过程
38 0
|
1月前
|
算法 安全 Java
java代码 实现AES_CMAC 算法测试
该代码实现了一个AES-CMAC算法的简单测试,使用Bouncy Castle作为安全提供者。静态变量K定义了固定密钥。`Aes_Cmac`函数接受密钥和消息,返回AES-CMAC生成的MAC值。在`main`方法中,程序对给定的消息进行AES-CMAC加密,然后模拟接收ECU的加密结果并进行比较。如果两者匹配,输出&quot;验证成功&quot;,否则输出&quot;验证失败&quot;。辅助方法包括将字节转为16进制字符串和将16进制字符串转为字节。
|
2月前
|
机器学习/深度学习 API Apache
机器学习PAI常见问题之本地运行深度学习训练和预测的测试代码时报错如何解决
PAI(平台为智能,Platform for Artificial Intelligence)是阿里云提供的一个全面的人工智能开发平台,旨在为开发者提供机器学习、深度学习等人工智能技术的模型训练、优化和部署服务。以下是PAI平台使用中的一些常见问题及其答案汇总,帮助用户解决在使用过程中遇到的问题。

热门文章

最新文章