接口测试平台代码实现153:加密算法继续实现

2022-05-19 10:17:16 浏览数 (1)

本节我们要真正的实现这个加密函数:

为了便于调试,我们先给普通接口调试函数 加入对它的调用:

(注意调用位置一定要放到 替换全局变量的后面!最好是在真正发送请求代码部分之前紧贴!)

如上图,这个函数最终会返回带了加密验签字段的url和body

然后,我们要耐心的做一个接口 用来调试用!

首先来看我们写的调试用的加密表达式:

注意,其中的time,我们会先检测是在url和body中存在这个字段,如果不存在,我们则用10位时间戳来表示,这个规则我们应该在一开始告知使用者,所以可以在说明文案中加入这一句:

然后是具体的接口:

注意,这个验签加密表达式一共需要三个变量,

token我放在了url里,userId我放在了body中,

然后开始正式写这个函数:

我们找到这个函数:views.py中

确认下要做的事:

  1. 用project_id 拿出 加密插入位置 和 加密表达式
  2. 根据加密表达式从url和body中拿出 需要用到的参数
  3. 组装成完整加密表达式并执行,生成加密字段key/value
  4. 根据加密插入位置 放到url或body中
  5. 返回加入后的url和body

第一步代码:

第二步代码:

我们先提取一下 表达式的key 和 字段,看看是否成功:

结果如下,不用管报错先,因为还没写完

可以看到 提取的很顺利

然后我们要从给的url和body中依次拿出这些变量,注意,如果提取失败就要先检测下,是不是time的,若是则启动预置时间函数。

(注意,这里我们之后可能会新增一些其他预置变量,所以大家注意下这里,以后可以根据需要扩充,不止有time一个预置变量哦~)

我们现在来思考一个问题,如何从url 中提取我们要的参数?

思路1: 给url用split解析,找出所有的key=value,然后直接取出来。

思路2:直接用正则,左边界是变量= ,右边界是&或结尾。

显然,从效率上来说,思路2明显要快n倍。因为这个函数是一个很底层的函数,我们必须保证它的执行速度,所以我们先尝试用思路2 解决!

注意这个正则写法,不要写错了哦~ 正则还不会用的小伙伴建议报名我的课程哦~

看看结果:

可以看到,成功取出来了这个数据。

好,本节课就到这里了。下节课继续吧.

0 人点赞