|
9. 需要签名验证的接口
接口参数格式如下,其中timestamp参数时实时的毫秒时间戳。
{"phoneNum":"123434","optCode":"testfan","timestamp":"12112121212","sign":"your sign data"}
签名规则如下:
sign字段的值 = phoneNum+optCode+timestamp
组合在一起然后进行md5加密。
因此在脚本中需要先进行加密处理,同时因为用到了实时时间戳,所以我们要导入一个时间处理库 DateTime库,在测试集合中导入DateTime库。
加密时的核心:
hashlib.md5('${phoneNum}${optCode}${timestamp}'.encode(encoding='utf8')).hexdigest()
计算得到毫秒时间戳:
int(round(${timestamp} *1000))
脚本如下:
10. cookie关联
在使用相同的session对象时,会自动做到cookie关联。
先实现登录接口的用例,再实现查询余额接口的测试,然后两个一起执行即可。
一起执行,勾选两条用例。
11. token关联
对于接口鉴权采用token时,即便采用相同的session对象也是关联不了的,需要我们自行处理。
业务规则:
·登录接口成功后响应信息中的data字段就是产生的token值
· 查询余额接口请求时headers中的testfan-token字段就是token参数名称
因此我们需要从登录接口响应中提取data,并将其传给查询余额的接口headers。
脚本如下:
三、rf数据驱动实现接口测试
1. 安装数据驱动依赖库
pip install robotframework-datadriver
在python安装目录的Lib\site-packages可以看到:
2. 准备测试数据文件
以码同学全栈接口项目的一个登录接口为例,准备测试数据。
创建一个excel文件写入如下数据:
第一行第一列是固定格式,表示测试用例名称;
第二列开始是测试数据对应的变量名称;
第二行开始是测试数据。
3. 创建测试集合并导入第三方库
创建测试集合apidatadriver,导入库RequestsLibrary和DataDriver,注意导入DataDriver时要写参数,导入后标红的话先不用管,继续做。
4. 创建集合变量并初始化session
5. 创建登录接口关键字
6. 创建测试用例引用数据驱动
测试用例中只需要在设置的模板中填写第5步创建的登录接口关键字即可。
执行测试,测试数据有三组,登录接口也执行了三次。
|
|