IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> python接口自动化测试--基于加密接口的测试用例设计 -> 正文阅读

[开发测试]python接口自动化测试--基于加密接口的测试用例设计

环境准备

在进行实战之前,需要先准备一个对响应加密的接口。对它发起一个 get 请求后,得到一个加密过后的响应信息。

先准备一个 JSON 格式 demo:

{"topics":
{
"orange":"movie",
"shool":"testing-studio",
"president":"seveniruby"
}
}

使用 base64 对其做加密,得到一个加密后的文件 demo64.txt

base64 demo.json >demo64.txt

使用 Python 命令在 “demo64.txt” 所在目录启动一个服务
10000指端口
?

python -m http.server 10000

启动后的样子如图:

使用curl命令对这个服务进行get请求:

curl http://127.0.0.1:10000/demo64.txt

?如果请求成功的话就代表环境已经准备成功

下面是实战练习与封装思想

#前提环境:加密的接口响应内容在url='http://127.0.0.1:10000/demo.txt'
import base64
import json
import requests

#单个实现逻辑
def EncrytionDemo():
    url="http://127.0.0.1:10000/demo.txt"
    r=requests.get(url)
    res=json.loads(base64.b64decode(r.content))
    print(res)
#封装:原理得到响应内容,对响应的内容做解密处理
class ApiRequest:
    #通过一个字典的结构体,保存所有的请求信息,包括发送的协议、解码方式、请求 method 等等,而这种字典形式的结构体也为后面的数据驱动改造做好了一个重要的铺垫。
    def send(self,data:dict):
        res=requests.request(data["method"],data["url"],headers=data["headers"])
        #edcode代表data结构体里面传入的解密方式
        #通过请求信息的结构体中的 edcode,添加判断条件,去选择不同的解密方式。
        if data["edcode"]=="base64":
            return json.loads(base64.b64decode(res.content))
        #依次类推进行判断
        elif data["edcode"]=="其他":
            return requests.post("url",data=res.content)
#测试加密接口,进行断言
def test_encrytiondemo():
    req_data={
        "method":"get",
        "url":"http://127.0.0.1:10000/demo.txt",
        "header":None,
        #代表传入的解密方式,字典结构体中添加一个 edcode 字段,用来判断选择的不同的加密条件。
        "edcode":"base64"


    }
    #实例化封装的解密类
    apirequest=ApiRequest()
    #调用方法进行解密
    apirequest.send(req_data)
    #得到解密后的信息,进行断言
    assert 1==1

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-12-02 17:03:49  更:2021-12-02 17:04:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 4:25:27-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码