给httprunnermanager接口自动化测试平台加点功能(七)

news2024/11/24 12:30:46

文章目录

      • 一、背景
        • 1.1、用例列表test_list
        • 1.2、套件列表suite_list
      • 二、实现
        • 2.1、用例edit页面
        • 2.2、套件edit页面
      • 三、数据结构
        • 3.1、更新数据结构
      • 四、知识扩展
      • 五、总结

一、背景

前面几章优化,从功能bug的优化、到列表的优化、还有字段的优化,暂时满足了需求,但是使用过程中,却因为团队的使用者越来越多,最后的维护却有些缺点,譬如咱们有创建者,如果在其他人维护之后,只有update_time,却不知道是谁,这样一来不方便跟踪记录,不知道谁在什么时候更新了内容,这样就不利于跟踪解决问题。既然在公司推行平台框架协作办公,那么测试组内人员在新增、更新这个接口用例的时候,就需要区分:创建者和更新者,所以需要对用例、套件列表新增updater字段。

1.1、用例列表test_list

...
<th class="table-type">所属项目</th>
<th class="table-type">所属模块</th>
<th class="table-type">创建者</th>
<!-- 新增更新者列 -->
<th class="table-type">更新者</th>
<th class="table-date am-hide-sm-only">创建时间</th>
<th class="table-date am-hide-sm-only">更新时间</th>
<th width="163px" class="table-title">操作</th>
...
<td>{{ foo.request|extract_url }}</td>
<td>{{ foo.request|extract_skip }}</td>
<td>{{ foo.belong_project }}</td>
<td>{{ foo.belong_module.module_name }}</td>
<td>{{ foo.author }}</td>
<!-- 新增更新者列 -->
<td>{{ foo.updater }}</td>
<td>{{ foo.create_time }}</td>
<td>{{ foo.update_time }}</td>
...

且看页面效果

在这里插入图片描述

1.2、套件列表suite_list

...
<th class="table-type">所属项目</th>
<th class="table-type">包含用例</th>
<th class="table-type">创建者</th>
<th class="table-type">更新者</th>
...
<td>{{ foo.author }}</td>
<td>{{ foo.updater }}</td>
<td>{{ foo.create_time }}</td>
<td>{{ foo.update_time }}</td>
...

套件列表的效果

在这里插入图片描述

二、实现

页面加载的列是添加好了,但是数据来源呢?所以在创建的时候需要提交作者,更新亦是如此,以前的操作呢题主故意给这个字段给隐藏了,首先它不需要花时间填写,更不要暴露出来给人更改(可以设置不能更改属性),所以需要先找edit页面,添加对应的编辑页面。

2.1、用例edit页面

...
<div class="form-group"  hidden="hidden">
    <div class="input-group col-md-4 col-md-offset-1">
        <div class="input-group-addon" style="color: #0a628f">更新人员</div>
        <input type="text" class="form-control" id="updater" name="updater"
               placeholder="用例更新人员" value="{{ account }}"><!-- 默认获取当前登录用户 -->
    </div>
</div>
...

经过路径查找,需要找到managers.py模块的update_case方法,增加如下代码

obj.updater = case_info.pop('updater')

2.2、套件edit页面

同样对于更新者,不需要编辑,默认隐藏输入框并默认取当前登录用户即可;js提交的数据需要加上updater

...
<div class="form-group" hidden="hidden">
    <div class="input-group col-md-4 col-md-offset-1">
        <div class="input-group-addon" style="color: #0a628f">编写人员</div>
        <input type="text" class="form-control" id="updater" name="updater"
               placeholder="用例更新人员" value="{{ account }}">
    </div>
</div>
...

# 下面找到edit_suite页面的onClick事件,需要添加updater字段并且赋值
...
const suite = {
                'project': $("#belong_project option:selected").val(),
                'include': include,
                'suite_name': $('#suite_name').val(),
                'updater': $('#updater').val(),
                'id': {{ info.id }}
            };
...

不管是edit还是add最终的逻辑还是在更新数据库,如edit_suite_data函数修改如下:

updater = kwargs.pop('updater')
...
suite_obj.updater = updater  # 表示数据库对象更新updater字段

三、数据结构

前面从html页面增加对应的列以及编辑页的updater字段,再到逻辑处理层,但是最终操作的是数据库,那么表结构都没支持,如何能通过页面操作的成功
在这里插入图片描述

3.1、更新数据结构

# 在用例和套件表中添加updater字段
updater = models.CharField('维护人员', max_length=20, null=True)

命令行如下:

python manage.py makemigrations
python manage.py migrate

四、知识扩展

1、在div标签中,hidden=“hidden”,顾名思义,它是不会在页面中显示;
2、在input标签中,disabled,表示在当前输入框中不支持修改该值;
在这里插入图片描述

总结就是:既然author、updater取当前用户的值,并且不允许修改,那么它就不需要显示了。
3、在表字段设计中,如果是字符串类型,null=True,表示它支持为null,否则可能在迁移数据库出现报错。

五、总结

终归是在别人的系统上二次开发,对于原本相同的操作,总是会出现不同的位置,这样对于改造来讲,会增加一定的难度,好在前面已经有些经验,改起来也算是轻车熟路。不管怎么说:日拱一卒无有尽、功不唐捐终入海!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/766292.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

(学习笔记-TCP连接建立)三次握手丢失后分别会发生什么?

第一次握手丢失 当客户端想和服务端建立TCP连接后&#xff0c;首先第一个发的就是SYN报文&#xff0c;然后进入到SYN_SENT状态。 在这之后如果客户端迟迟没有收到服务端的SYN-ACK报文(第二次握手)&#xff0c;就会触发[超时重传]机制&#xff0c;重传SYN报文&#xff0c;而且…

【淘宝API接口开发系列】item_review-获得淘宝商品评论

淘宝/天猫获得淘宝商品评论 API 返回值说明 taobao.item_review 公共参数 请求地址:注册Key和secret接入 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_nameString是API接口名称&#xff08;包括在请求地…

韧性数据安全体系组成:运行保障与底线防御安全 |CEO专栏

「构建适应性进化的韧性数据安全体系」专栏&#xff0c;为你解读美创科技在数据安全的最新探索实践。 上期内容&#xff08;点击此处跳转&#xff09;&#xff0c;专栏重点分享了韧性数据安全体系的重要组成——资产和资产安全。数据资产是网络中最为确定性的存在&#xff0c;以…

qgis以某个字段(属性)的类目值来分类显示不同的颜色和调整每个类别的绘制顺序(一个类别在另一个类别上面不被覆盖)和将某字段(属性)的值当成图层标签进行显示

前言 我这里的样例以北京景区的点shp数据为例,属性表如下所示: 我们将以景区的等级划分成五类,分别显示不同的颜色,并且5A景区绘制在4A景区上方不被遮挡…,并且将景区的名称显示在景区点的上方。 一、分类不同颜色显示 1、自动分配颜色 首先,我们双击图层文件,打开…

小程序源码二开多端合一

1.注册与登录&#xff1a; 用户可以注册账号并登录到小程序&#xff0c;以便进行后续操作和管理。 2.货物管理&#xff1a; 用户可以添加、编辑和删除货物信息。 货物信息包括货物名称、数量、重量、尺寸、装载方式等。 3.拉货服务&#xff1a; 用户可以选择拉货服务&…

TransmittableThreadLocal 原理分析

前言 注&#xff1a;在看此篇文章前&#xff0c;你需要了解 ThreadLocal、InheritableThreadLocal 的原理。 这里先总体的介绍TransmittableThreadLocal &#xff08;下文以 ttl 作为简称&#xff09;的原理再去分析一些核心的源码&#xff0c;旨在先有个整体的认识&#xff0…

(学习笔记-连接断开)TCP四次挥手

TCP四次挥手过程 TCP断开连接是通过四次挥手实现的&#xff0c;双方都可以主动断开连接&#xff0c;断开连接后主机中的资源将被释放&#xff0c;四次挥手的过程如下&#xff1a; 客户端打算关闭连接时&#xff0c;会发送一个TCP首部FIN标志位为1的报文&#xff0c;也就是FIN报…

预警先行,问题零失控,提升物流的重要利器

每一次大促活动&#xff0c;都是商家们的大卖良机&#xff0c;然而出单之后&#xff0c;最怕出现发货异常的问题。比如包裹长时间未揽收、物流长时间未更新...稍有不慎就会影响店铺权重&#xff0c;甚至深陷各种取消订单、退款赔偿的泥潭。 这时物流监控预警就显得格外重要了。…

浏览器书签栏的小图标设置

在我们写项目中肯定需要自定义这些浏览器的图标 , 那么如何设置呢 <link rel"icon" href"favicon.png" type"image/x-icon" /> 其中的href是选择路径 像vue中 , 基本上都是在文件夹public中的index.html设置浏览器标题跟图标 , 图片的大小…

数据库数据恢复-Oracle数据库文件有坏块损坏的数据恢复案例

Oracle数据库故障&检测&#xff1a; 打开oracle数据库报错&#xff1a;“system01.dbf需要更多的恢复来保持一致性&#xff0c;数据库无法打开”。 北亚企安数据恢复工程师检测数据库文件发现sysaux01.dbf有坏块&#xff0c;sysaux01.dbf文件损坏。数据库无备份&#xff0c…

Windows10环境下安装Kibnana

Windows10环境下安装Kibnana 一、Kibana 介绍1. 数据可视化&#xff1a;2. 仪表板&#xff1a;3. 查询和过滤&#xff1a;4. 地理信息系统&#xff08;GIS&#xff09;支持&#xff1a;5. 实时监控和警报&#xff1a; 二、安装步骤1. 官网地址&#xff1a;2. 选择操作系统3. 解…

echarts——柱状图+折线图

var myChart echarts.init(document.getElementById(myChart)); var option {title: {text: XX增速,textStyle: {color: #2bffff,fontSize: 14,fontWeight: 100,fontFamily: "fontStyle"},left: 0,top: 0,},tooltip: {show: true,backgroundColor: rgba(38,39,40,0…

Waves 14 Complete for Mac(Waves混音效果全套插件)

Waves 14 Complete for Mac是一款音频插件套装&#xff0c;拥有多种不同的音频处理插件、高品质音效、简单易用的界面、完全兼容和兼容多平台等特点&#xff0c;可以帮助音频制作人员进行音频处理和混音&#xff0c;提高音频制作的效率和质量。 音乐创作是一个永不停歇的探索过…

Apache Doris (三十):Doris 数据导入(八)Spark Load 3- 导入HDFS数据

目录 1. 准备HDFS数据 2. 创建Doris表 3. 创建Spark Load导入任务 4. 查看导入任务状态 进入正文之前&#xff0c;欢迎订阅专题、对博文点赞、评论、收藏&#xff0c;关注IT贫道&#xff0c;获取高质量博客内容&#xff01; 宝子们订阅、点赞、收藏不迷路&#xff01;抓紧…

【iOS】—— 属性关键字及weak关键字底层原理

文章目录 先来看看常用的属性关键字有哪些&#xff1a;内存管理有关的的关键字&#xff1a;&#xff08;weak&#xff0c;assign&#xff0c;strong&#xff0c;retain&#xff0c;copy&#xff09;关键字weak关键字assignweak 和 assign 的区别&#xff1a;关键字strong&#…

时间序列的季节性:3种模式及8种建模方法

分析和处理季节性是时间序列分析中的一个关键工作&#xff0c;在本文中我们将描述三种类型的季节性以及常见的8种建模方法。 什么是季节性? 季节性是构成时间序列的关键因素之一&#xff0c;是指在一段时间内以相似强度重复的系统运动。 季节变化可以由各种因素引起&#xf…

看见未来:定位咨询如何预测行业趋势

商业竞争时代&#xff0c;变化无处不在。科技日新月异&#xff0c;消费者需求日益多元&#xff0c;市场环境更加动态不定。在这个快速发展的时代&#xff0c;如果企业想要继续领先&#xff0c;就必须有能力预见未来&#xff0c;适应并驾驭这些变化&#xff0c;这就是定位咨询的…

【QT】使用QtCreator进行debug

使用QtCreator进行debug 简单操作 设置断点 鼠标右键在需要打断点的地方打断点 debug 点击小甲虫按钮&#xff0c;启动之后可以看到三个窗口表格 这里显示变量的值。 这里显示函数当前的执行处以及断点的地方 这三个按钮分别代表的含义是&#xff1a; step into: 单步执行&…

通过宝塔面板部署一个SpringBoot+Vue前后端分离项目的指南(三更)

采取的部署方案 阿里云服务器->FinalShell->宝塔面板。 近期需要将自己的一个SpringBootVue前后端分离项目&#xff0c;并且是分模块开发的项目部署到服务器上&#xff0c;记录一下踩坑的地方&#xff0c;结合C站大佬的解决方案&#xff0c;循循善诱一步步部署到服务器上…

部署开源项目 Casdoor 身份认证管理系统到本地

前言 Casdoor是一个基于OAuth 2.0、OIDC、SAML 和 CAS 的&#xff0c;UI-first的身份和访问管理(IAM)/单点登录(SSO)平台。使用 Go 和react开发&#xff0c;前后端分离&#xff0c;内置第三方应用登录服务。 Casdoor 有四个核心概念&#xff0c;分别是 组织(Organization)&am…