基于加密接口的测试用例设计

一、环境准备

1、对响应加密的接口。对它发起一个get请求后,得到一个加密过后的响应信息。(如果有可用的加密过的接口以及了解它的解密方法,可以跳过)
2、准备一个加密文件
在这里插入图片描述
加密字段
在这里插入图片描述

3、使用python命令在有加密文件的所在目录启动一个服务
在这里插入图片描述

4、访问该网站

在这里插入图片描述

二、原理

在得到加密过后的响应信息后对响应做解密处理:

1、如果知道使用的是哪个通用加密算法的话,可以自行解决。
2、如果不了解对应的加密算法的话,可以让研发提供加解密的lib。
3、如果既不是通用加密算法、研发也无法提供加解密的lib的话,可以让加密方提供远程解析服务,这样算法仍然是保密的。

三、实战练习

1、调用python自带的base64,直接对返回的响应做解密,即可得到解密后的响应。

import requests
import base64
import json

def test_encode():
    url = 'http://127.0.0.1:9999/demo.txt'
    r = requests.get(url=url)
    print(r.text)
    res = json.loads(base64.b64decode(r.content))
    print(res)

2、封装对于不同算法的处理方法。
base_api.py

class ApiRequest:


    def send(self,data:dict):
        res=requests.request(data['method'],data['url'],headers=data['headers'])
        if data['encoding']== "base64":
            return json.loads(base64.b64decode(res.content))
        elif data['encoding']== "md5":
            return
        # 把加密后响应值发给第三方服务i,让第三方服务解密返回
        elif data['encoding'] == "第三方":
            return requests.post("url",data=res.content)

测试用例.py

from unittest import TestCase
from mima import test_requests

class TestApiRequest(TestCase):
    req_data = {
    
    
        "method": "get",
        "url": "http://127.0.0.1:8080/demo.txt",
        "headers": None,
        "encoding": "base64"
    }

    def test_send(self):
        ar=test_requests.ApiRequest()
        print(ar.send(self.req_data))


猜你喜欢

转载自blog.csdn.net/YZL40514131/article/details/132481956