前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >接口测试平台代码实现149:加密算法的增删改查

接口测试平台代码实现149:加密算法的增删改查

作者头像
我去热饭
发布2022-05-19 10:15:11
3090
发布2022-05-19 10:15:11
举报
文章被收录于专栏:测试开发干货

我们目前要做的加密算法是一个实体,或者说一个表达式。那么它就自然而然的要考虑下面几点:

1. 存放在哪?数据库以项目为单位

2. 增删改查的功能实现

3. 具体的功能实现。

按照《测试开发方法论》中关于这种复杂功能,直接划分成一个一个的小步骤,就会变得很简单,并且增强你的自信,也方便你进行排期,风险预测等等。还没看过的小伙伴 尽快关注此公众号哦~

那么好,我们先解决第一条。去数据库项目表增加 加密算法表达式 字段:

encryption:

打开models.py:

然后执行同步表结构的命令:

接着我们去搞第二步骤:

我们打开前端html模板:P_apis.html:

许久不开发,我们要先熟悉下 这个巨大html的当前结构:

我们现在可以不用去管这个加密的复杂逻辑,只把它当成一个字段去想,然后它的增删改查,我们都直接照抄 比如全局请求头 这种即可。

  1. 要新建一个DIV 默认隐藏,存放修改的弹层
  2. 页面底部菜单要有个按钮,点击可以显示这个弹层
  3. 弹层要有取消和保存俩个功能JS函数
  4. 弹层要有这个输入框 和相关说明

好,就这四步,是不是很简单?

开始实行:

在下面找个风水宝地,先新建个div:

然后添加展示它的函数:

然后去底部菜单,关联到这个shwo函数:

然后去完善这个div:

其中利用了bootstrap3的输入框组,可复制代码如下:

代码语言:javascript
复制
{# 加密算法#}
<div id="encryption_div" style="display: no2ne;border-radius:5px;width: 80%;background-color: white;
position: absolute;left: 10%;top: 10%;box-shadow: 4px 4px 8px grey;padding: 10px">
    <div class="btn-group" style="float: right">
        <button onclick="login_save()" type="button" class="btn btn-success">保存</button>
        <button onclick="login_close()" type="button" class="btn btn-default">取消</button>
    </div>
    <h4>请设置该项目的加密表达式:</h4>
    <p style="color: gray">选择加密的位置:URL 还是 BODY ,一般都是URL
选择加密的数据来源:也就是都需要哪些字段来作为入参变量。比如有的固定是选url或body中的 userid和token俩个变量,其他变量不考虑。那这里我们让用户写上userid,token。然后平台自动去url和body中去找这俩个字段和值
最后让用户写上 表达式:
        比如:sign=base64(base64("#token#"+"#userid#")+"#time#")
注意其中我们会把##包裹的当做变量去找到真实的值进行替换,如果用户需求是 连key一起,那么应该告诉他,写成如下这样:
sign=base64(base64("token=#token#"+"userid=#userid#")+"#time#")
而且其中引号千万不能少 !</p>

    <div class="input-group input-group-sm" style="margin-top: 5px">
        <span class="input-group-addon">选择加密字段插入位置:</span>
        <span class="input-group-addon" style="width: 3px;background-color: white">
            <label>
                <input type="radio" name="encyption_radio" value="url" id="bingfa_true" checked="checked">
                <span style="font-size: medium">url</span>
            </label>
        </span>
        <span class="input-group-addon" style="width: 3px;background-color: white">
            <label>
                <input type="radio" name="encyption_radio" value="body" id="bingfa_false">
                <span style="font-size: medium">body</span>
            </label>
        </span>
    </div>
    <div class="input-group input-group-sm" style="margin-top: 5px">
        <span class="input-group-addon">加密表达式:</span>
        <input id="encyption_input" type="text" class="form-control" style="height: 40px">
    </div>
    <br>
</div>

展示如下:

注意,目前的div的隐藏属性display 我故意写成no2ne,目的是方便调试让它一直展示,等我们完全写完后 再给改成none即可。

然后我们去搞定他的展示show函数:

如上图,注意,我们不打算在打开的时候 重新请求后端获取最新的加密表达式,而是直接在dom标签里 给这个input的value 用上进入页面时候带进来的数据:从项目中获取到的加密表达式。

有的同学会问,这样会不会打开的时候显示的并不是最新的,其实这个可能性几乎为0,只要我们把这个唯一能修改加密表达式的弹层,无论是取消还是保存,都触发整个页面的刷新,那么就会保证修改后刷新页面自动带入了最新的数据了,这个设计很讨巧。

现在可以把div的display 改回none了,试试效果,可以正常打开即是成功~

好了本期内容到此结束,下期我们搞定保存功能。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-06-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 测试开发干货 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档