在我们之前的章节中成功的结束了暂时的 UI美化。
总有同学问我,饭佬,饭哥哥! 接口测试平台什么时候能结束啊?
我会坦然的回答: 结束?结束了我还水什么?结束了你在公司部署好之后吃老本么?下季度OKR怎么办?什么APP 什么系统不是天天迭代 天天有新需求 新设计,都结束了,程序员去要饭么?
所以结束是不可能的,但是功能会逐步完善,你什么时候想用都可以下载。这个过程中我吸取了很多同学的宝贵建议,评估后进行设计实现。期盼它会越来越好,有更多的变化出现。
它也帮助了很多很多人,有的拿到了S绩效,有的找到了高薪OFFER,这些都是事实。 这样宝贵的教程,我不会让它随便终结的。
所以这里开启新的一大篇章: 加密算法的设计
所谓加密,就是把一些重要敏感数据经过加密 发送给服务器。服务器再解密得到原始数据。
这样做的目的就是防止数据中途被人拦截或伪造。
当然 加密的算法 就是真正的秘密,也就是只有客户端和服务器 才知道的秘密。一般的加密倒过来就是解密。
不同的公司 不同的组,不同的端,一般加密的算法都是不同的,所以我们这里平台的设计是,每个项目都有自己的一套加密算法。
比如:公司要求加密策略为:要把请求URL后加入一个叫做sign的变量,它是由 url中其他所有参数的key=value,放在一起,然后通过base64/sha1等自动加密算法加密成32位的字符串,然后这个字符串再加入时间戳,成为42位的字符串,然后再用sha1加密一遍,这个结果,就是URL最后sign的值。 完整url传给服务器后,服务器第一件事就是看看这个url的参数是不是被人伪造过,如果伪造过,黑客并不知道加密策略,所以后面的sign的值进行解密后,发现并不是传过来的url的各参数key=value,那就会判定这个请求无效,给你返回个错误参数等等。
平台要做的就是,给每个项目的一套加密算法,让使用者自行填充,我们提供一些开源加密函数的调用,比如上面例子提到的 base64和sha1。然后让用户自己写成如下格式:
注意其中我们会把##包裹的当做变量去找到真实的值进行替换,如果用户需求是 连key一起,那么应该告诉他,写成如下这样:
sign=base64(base64("token=#token#"+"userid=#userid#")+"#time#")
而且其中引号千万不能少,我们会忠实的替换后,进行exec的执行脚本命令,如果没有引号,那么就会出现报错,把字符串当做了变量,当然就报错找不到这个变量了~
然后在 我们的普通接口调试,异常测试,用例执行,登录态接口调试 等地方,添加是否加密的开关,让用户自己选择即可。
这个架构设计和我们之前的项目公共变量替换类似,照样去写一个公共的替换函数,然后兼容上面四个使用地点即可。
前端设计上,依然是点开加密算法按钮后弹出一个弹层。让用户按照上述设计实现交互。
好了本节课的内容到此结束,我们开启了一个新的篇章哦~