Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >接口测试平台代码实现151:加密算法后台函数实现

接口测试平台代码实现151:加密算法后台函数实现

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

本节我们准备搞定这个加密的生成算法。

好的,在这大家也跟了150期了,对于这个算法的实现,能否知道从哪下手呢?觉得难么?

如果觉得难,那么此时要怎么办?能帮助你的就是 热饭的《测试开发方法论》

方法论迟早会成书,目前已经在设计中了,到时候打赏过的同学都可以成本价拿到书,排名前100的同学都会免费收到,而且博主亲自签名款哦~

根据《测试开发方法论》中所说:

当想要做一个工具方法函数的时候,通过固定的步骤来设计就会很简单且简单实现:

1. 这个函数要写在哪?

写在views.py中,游离在外,方便调用。

2. 这个函数要干什么?

生成最终的sign或者其他加密字段,并返回拼接好后的url和body!

3. 这个函数需要什么上游数据?

需要数据库拿出来的url和body,然后是项目id,根据项目id来获取到加密表达式和加密位置。

4.这个函数要怎么调用?

各个上游函数,通过a,b = func(a,b,c) 来调用。这几个变量大家应该知道是什么了,就是url,body,project_id。

5.这个函数内部要怎么实现?

首先我拿到的有完整的url+body, 然后还有加密表达式,那么完全可以用Python代码来计算出最终的变量。然后根据加密插入位置 来决定给url还是body加入,最后把拼接完的url和body送返还给调用者即可。

6.这个函数要求什么性能么?

当然有要求,这个函数在所有需要加密的请求中均会运行一次,而且如果遇到非常长的url和body,并且加密过程很繁琐的情况下,如果算法不够智能,则会严重拖慢使用体验。不过我们当前要解决的事完成实现,而非优化。关于什么时候优化,优化的目标,程度和手段,同样可以在《测试开发方法论》中找到答案。

7.兼容性稳定性健壮性等等

这个优先级要高,作为一个被调用的桩函数,它接收到的数据可能是多种多样的,那么这里首先要保证的就是不能报错,然后是想尽办法适配各种类型的,比如url 有的人写的后面没有参数,有的有参数,有的后面是?有的后面是/或.com或其他字符串,那我们进行拼接新的加密字段的时候,就要针对这些情况做出不同的对应方案才可以让上游函数放心调用。

然后继续进行下列思考:

因为函数比较复杂,所以我们准备先去草纸-test.py中,去实现,这样多轮调试可以很快节省成本,等实现后,再复制到项目views.py中即可,这也算是个快速开发的小窍门,同样可在《测试开发方法论》中找到。

不过我们这里仍然漏掉了一个重要参数,那就是body的类型,在我们的body中有 none,form-data,x-www.. 和 纯文本格式的 raw-json , raw-text 甚至url,js等等类型,那么加密字段要想插入它们的写法必然也是不同的,甚至提取的时候就不同,此时我们应该传入请求体类型。

那么对于一些无法提取和无法插入的请求体我们要怎么办呢?答案是不办!直接返回无法插入就可以了,能这么操作的用户估计是不会用,你一个加密字段,你往一段xml里插什么插,你是接口测试人员么?当然我们不用真的嘲讽,只需要不执行即可。

好本期思考完毕,希望小伙伴能自己先根据这些锻炼的设计出来,下期我再开始正式代码实现。

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

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

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
接口测试平台代码实现112:登录态接口-8
本节我们要搞定普通接口调试时自动加入登陆态接口返回参数到请求头/体中的后台实现。
我去热饭
2022/05/19
4400
接口测试平台代码实现112:登录态接口-8
接口测试平台代码实现150:加密算法继续实现
name必须是一样的,value是要获取的值当然不一样,id是由前面相同后面不同。
我去热饭
2022/05/19
5850
接口测试平台代码实现150:加密算法继续实现
接口测试平台代码实现153:加密算法继续实现
(注意调用位置一定要放到 替换全局变量的后面!最好是在真正发送请求代码部分之前紧贴!)
我去热饭
2022/05/19
1860
接口测试平台代码实现153:加密算法继续实现
接口测试平台代码实现153:加密算法更新
这个bug是什么意思呢?就是当我们删除一个数据时,结果报错说,返回的必须是str 而非None。这个问题的原因在于我们的models.py中的 返回展示部分:
我去热饭
2022/05/19
2370
接口测试平台代码实现153:加密算法更新
接口测试平台代码实现52: 自动异常测试-5
找到这个error_play函数,我们已经替换好了请求体,那么接下来就把新请求体和接口id传递给后台即可
我去热饭
2022/05/19
8500
接口测试平台代码实现52: 自动异常测试-5
接口测试平台代码实现152:加密算法继续更新
这里要注意,因为我们后添加的这个字段,所有之前的数据,很可能这里都是空字符串或None。
我去热饭
2022/05/19
2530
接口测试平台代码实现152:加密算法继续更新
接口测试平台代码实现149:加密算法的增删改查
我们目前要做的加密算法是一个实体,或者说一个表达式。那么它就自然而然的要考虑下面几点:
我去热饭
2022/05/19
3390
接口测试平台代码实现149:加密算法的增删改查
接口测试平台代码实现133: 全局变量-12
上节课最后我们说要开始弄复杂的body了。其实body也并不是很复杂,我们只需要记住:
我去热饭
2022/05/19
2990
接口测试平台代码实现133: 全局变量-12
接口测试平台代码实现107:登录态接口-4
首先我们要修复上节的一个bug,就是展示这个登陆态函数的bug,由于作者的疏忽,导致加错了login_ :
我去热饭
2022/05/19
3280
接口测试平台代码实现107:登录态接口-4
接口测试平台代码实现107:登录态接口-3
首先先改正一下 榜一大哥提出的bug,就是当选择完公共请求头后取消选择,然后再请求就会报错的问题:
我去热饭
2022/05/19
5310
接口测试平台代码实现107:登录态接口-3
接口测试平台代码实现139:不同项目大用例登陆态干扰bug测试
在输出到报告上的时候,还没有运行到登陆态的相关代码。所以测试报告这样是看不到登陆态字段的。
我去热饭
2022/05/19
2080
接口测试平台代码实现139:不同项目大用例登陆态干扰bug测试
接口测试平台代码实现155:加密算法开关
多亏榜一大哥提醒,加密算法居然漏掉了开关功能,榜一大哥也随即在测试开发水货上更新了如何加入开关的文章,欢迎收看。
我去热饭
2022/05/19
3170
接口测试平台代码实现155:加密算法开关
接口测试平台代码实现102:GraphQL-2
我们上节搞定了首页的前端显示,不过有小伙子反馈说高度不够,那,其实我们可以通过修改raw属性来控制高度,其实就是行数。之前10行,我们改成14行:
我去热饭
2022/05/19
2400
接口测试平台代码实现102:GraphQL-2
接口测试平台代码实现97:全局域名-4
上节课我们成功的搞定了host域名管理相关的部分。本节我们要开始弄公共请求头了。
我去热饭
2022/05/19
6870
接口测试平台代码实现97:全局域名-4
接口测试平台代码实现13:注册功能
上节我们实现了登陆功能,但是可惜用户表中没数据。所以这节我们讲如何注册用户。
我去热饭
2022/05/19
1.7K0
接口测试平台代码实现13:注册功能
接口测试平台代码实现44:发送请求-1
我们梳理一下思路: 现在我们已经拿到了接口的所有请求数据。已经完全可以进行一次请求了。
我去热饭
2022/05/19
3220
接口测试平台代码实现44:发送请求-1
接口测试平台代码实现131: 全局变量-10
我们在之前章节已经把变量组 的增删改查 都弄好了。接下来就是应用到实际的请求中了。
我去热饭
2022/05/19
3280
接口测试平台代码实现131: 全局变量-10
接口测试平台代码实现134: 全局变量-13
在上节课中,我们成功的搞定了 在调试层请求体插入 变量。其实这已经证明一切都是可行的了。我们剩下的就是照葫芦画瓢,把什么登陆态,多用例,异常等 都插入全局变量即可完成本章节。
我去热饭
2022/05/19
2760
接口测试平台代码实现134: 全局变量-13
接口测试平台代码实现58-首页重构6
我们记得,我们都是用a标签超链接 来显示一个一个的请求记录。那么他们点击的href属性,我们指定的是触发一个叫home_log_show()的js函数,传入这个记录的id,当然这个函数还没有写。
我去热饭
2022/05/19
6270
接口测试平台代码实现58-首页重构6
接口测试平台代码实现148:加密算法的设计与实现
我会坦然的回答: 结束?结束了我还水什么?结束了你在公司部署好之后吃老本么?下季度OKR怎么办?什么APP 什么系统不是天天迭代 天天有新需求 新设计,都结束了,程序员去要饭么?
我去热饭
2022/05/19
3160
接口测试平台代码实现148:加密算法的设计与实现
推荐阅读
相关推荐
接口测试平台代码实现112:登录态接口-8
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档