通常出于安全性考虑,开发会对接口参数进行加密,加密方式有很多种,例如MD5、Base64、RSA双密钥加密方式等,下面我们以MD5加密方式的登录接口为例,此接口对密码进行了加密,如果测试时直接使用未加密的原密码去测试接口得到的肯定是无法登录成功的。

一、加密方法

这里我们在test.py中写入MD5、Base64、RSA这几种加密的方法,如下:

 # MD5加密def md5(self,args=None):if args is None:md5_str=''return md5_str  # 返回为小写,需要转大写后面添加.upperelse:utf8_str = str(args).encode("utf-8")# md5加密(哈希算法)md5_str = hashlib.md5(utf8_str).hexdigest()return md5_str  # 返回为小写,需要转大写后面添加.upper# BASE64加密def bs64(self, args):# 以指定的编码格式编码字符串utf8_str = str(args).encode("utf-8")# base64加密base64_str=base64.b64encode(utf8_str).decode("utf-8")   #base64.b64encode(utf8_str)是字节格式,使用decode(# "utf-8")将其转换成字符串return base64_str  # 返回为小写,需要转大写后面添加.upper#RSA双密钥加密方式#生成公钥的私钥写入到指定的pem文件:def create_key(self):#根据密钥长度生成公钥和私钥(public_key,private_key)=rsa.newkeys(1024)# print(public_key,private_key)#保存公钥with open("D:\\测试项目\\接口测试自动化2\\public.pem","w+") as f:f.write(public_key.save_pkcs1().decode())# 保存私钥with open("D:\\测试项目\\接口测试自动化2\\private.pem","w+") as f:f.write(private_key.save_pkcs1().decode())#通过公钥加密def public_key_jiami(self,args):# 导入密钥with open("public.pem") as f:pubkey= rsa.PublicKey.load_pkcs1(f.read().encode())#加密byte_str=rsa.encrypt(str(args).encode("utf-8"),pubkey)print(byte_str)#把二进制转换成字符串格式miwen =base64.b64encode(byte_str).decode('utf-8')return miwen#通过私钥解密def private_key_jiemi(self,args):# 导入私钥with open("private.pem") as f:prikey = rsa.PrivateKey.load_pkcs1(f.read().encode())#解密byte_str=base64.b64decode(args)mingwen=rsa.decrypt(byte_str,prikey).decode()return mingwen

二、测试用例yaml文件中调用加密方法

在测试用例的get_token.yaml中我们改写password的值,如下:

对于密码为空的情况,也是需要特殊处理,因为当你密码是空的时候,调用方法时会报错,所以这里我以MD5的加密为例进行了处理,

if args is None:md5_str=''return md5_str

好了,一个简单的python+pytest+yaml+ddt+allure的个框架就学习到这了,后面还有框架优化或者升级,等我研究出来再和大家分享

三、源码

这么多天的学习就暂且到这里了,如果你也想要学习和了解接口测试,想要一个写好了的自动化测试框架,可以看这里:

https://download.csdn.net/download/weixin_42833736/86225410

【python做接口测试的学习记录day10——pytest自动化测试框架之接口加密】相关推荐

  1. 【python做接口测试的学习记录day9——pytest自动化测试框架之yaml数据驱动封装】

    之前我们的框架中,如果有多个测试用例,则需要在yaml文件中写入多个用例,而每个用例可能不同的仅仅只是个别参数值,这就导致很多重复代码,现在我们使用数据驱动就可以解决这个问题了. 我依旧采用之前的登录 ...

  2. python做接口测试的优点_python做接口测试的必要性

    什么是接口测试 接口测试主要用于检测外部系统与内部系统之间,以及系统内部各 个子系统之间的交互点.其测试的重点是,检查数据的交换.传递和控 制管理过程,以及系统间的逻辑依赖关系等. 为什么要做接口测试 ...

  3. python气象数据可视化学习记录1——基于ERA5数据画风场和海平面气压填色叠加图

    python气象数据可视化学习记录1--基于ERA5数据画风场和海平面气压填色叠加图 1. 写在前面 2. 图片效果 3. 逐步代码解析 3.1导入库 3.2 读取NC格式数据 3.3 对数据进行加工 ...

  4. 无线通信零基础学习记录(2)——GSM空中接口物理层的设计

    无线通信零基础学习记录(2)--GSM空中接口物理层的设计 本章解释清楚了之前未搞懂的名词,如时隙等,以及各种信道类型,在此一并总结. TDMA空中接口技术 时分多址(TDMA,Time Divisi ...

  5. Pytest 自动化测试框架

    Pytest 自动化测试框架 Pytest和Unittest测试框架的区别? 如何区分这两者,很简单unittest作为官方的测试框架,在测试方面更加基础,并且可以再次基础上进行二次开发,同时在用法上 ...

  6. pytest自动化测试框架,真正做到从0到1由浅入深详细讲解【万字级】

    目录 嗨咯铁汁们,很久不见,我还是你们的老朋友凡叔,这里也感谢各位小伙伴的点赞和关注,你们的三连是我最大的动力哈,我也不会辜负各位的期盼,这里呢给大家出了一个pytest自动化测试框架由浅入深详细讲解 ...

  7. python 数据分析学什么-利用Python做数据分析 需要学习哪些知识

    根据调查结果,十大最常用的数据工具中有八个来自或利用Python.Python广泛应用于所有数据科学领域,包括数据分析.机器学习.深度学习和数据可视化.不过你知道如何利用Python做数据分析吗?需要 ...

  8. 【学习笔记】HttpRunner自动化测试框架入门

    HttpRunner自动化测试框架入门 文章目录 设计思想和理念 一.Httprunner环境搭建 可以用相关命令**直接生成对应的项目文件夹** 二.Httprunner五个命令 三.一分钟生成用例 ...

  9. Selenium+Pytest自动化测试框架实战

    前言 selenium自动化+ pytest测试框架 本章你需要 一定的python基础--至少明白类与对象,封装继承 一定的selenium基础--本篇不讲selenium,不会的可以自己去看sel ...

最新文章

  1. 机器能否拥有像人类一样的意识?Science长文综述解读
  2. Python3 configparser 中文乱码
  3. Vue.js 事件处理
  4. 四十五、和我一起看看,国外的Python考试到底是怎么样(上篇)
  5. 深入.net平台的分层开发
  6. API网关从入门到放弃
  7. 互联网晚报 | 2月12日 星期六 | 宝马控股华晨宝马落锤;知乎否认视频部门裁员;《老友记》全十季高清版全网首播...
  8. java设计模式--简单工厂模式
  9. day31-python阶段性复习五
  10. c语言程序与结构,c语言基础与顺序结构-c语言程序设计.ppt
  11. PHPMailer 报错:SMTP ERROR: Failed to connect to server: (0)
  12. 信号完整性分析学习--16--传输线效应
  13. kron matlab_使用kron来实现repmat, repelem的功能
  14. 关于苹果手机部分版本机型上传时卡住相册问题记录
  15. KernelGAN论文详解分享
  16. DMZ主机的使用设置
  17. 嘉奥(JAO.CC)办公用品专营店的网店策划
  18. 如何在centos环境下运行.exe文件
  19. Visual Studio打开文件时出现“向程序发送命令时出现问题
  20. canopen研发记录

热门文章

  1. 热身运动之JS设置鼠标点击事件
  2. 我的淘宝 快乐岛主外挂的制作经历
  3. 2019年chrome浏览器主页被劫持无法清除
  4. DNS 代理?Pipy:这我也可以
  5. Rego不好用?用Pipy实现OPA
  6. linux命令行执行mysql语句_linux命令行中直接执行mysql语句
  7. 松下Pro7的ModBus通信,F145和F146这两个指令怎么用
  8. 解决ERROR: This script does not work on Python 2.7 The minimum supported Python version is 3.7
  9. <软件工程>个人作业:软件案例分析
  10. 全面了解3D Tiles