当前位置: 首页 > news >正文

使用python test测试http接口

使用python test测试http接口

  1. 获取token和控制session,后面大多数接口要带上这些信息

    import time
    import requestsfrom common.aes_algorithm import AES
    from config.config import Config
    from config.log import logclass Common:username = "admin"password = "888888"token = Noneuser_id = NonecontrolSession = Nonedef __init__(self):pass@classmethoddef login(cls):timestamp = int(time.time())password = AES.encrypt(cls.password, str(timestamp))data = {"username": cls.username,"password": password,"timestamp": timestamp,}response = requests.post(f"{Config.base_url}/user/login", json=data)response.raise_for_status()# 打印响应内容dataJson = response.json()log.debug(dataJson)if dataJson["status"] == 200:data = dataJson.get("data")cls.token = data.get("Authorization")cls.user_id = data.get("userID")@classmethoddef get_control_session(cls):if cls.controlSession is None:timestamp = int(time.time())password = AES.encrypt(cls.password, str(timestamp))response = requests.post(f"{Config.base_url}/user/verifyControlPasswd",headers={"Authorization": cls.token},json={"userID": cls.user_id,"password": password,"timestamp": timestamp,},)response.raise_for_status()dataJson = response.json()log.debug(dataJson)if dataJson["status"] == 200:data = dataJson.get("data")cls.controlSession = data.get("controlSession")def get_token(cls):cls.login()cls.get_control_session()if __name__ == "__main__":common = Common()common.get_token()
    
  2. 使用unittest编写单元测试

    import time
    import unittestimport requestsfrom common.login import Common
    from config.config import Config
    from config.log import logclass StgyModeTest(unittest.TestCase):@classmethoddef setUpClass(cls):cls.common = Common()cls.common.get_token()  # 只执行一次timestamp = int(time.time())cls.data = [{"userID": Common.user_id,"controlSession": Common.controlSession,"timestamp": timestamp,"mode": "powerBalanced",},{"userID": Common.user_id,"controlSession": Common.controlSession,"timestamp": timestamp,"mode": "socBalanced",},{"userID": Common.user_id,"controlSession": Common.controlSession,"timestamp": timestamp,"mode": "customRatio","powerWeights": [{"pcsCode": "pcs1", "ratio": 0.3},{"pcsCode": "pcs2", "ratio": 0.7},{"pcsCode": "pcs3", "ratio": 0},],},]def test_set_power_balanced_stgy(self):response = requests.post(f"{Config.base_url}/strategy/setStrategyMode",headers={"Authorization": Common.token},json=self.data[0],)log.info(f"set stgy mode response: {response.text}")response.raise_for_status()# 打印响应内容dataJson = response.json()if dataJson["status"] == 200:data = dataJson.get("data")log.info(f"set stgy mode success, data: {data}")def test_set_soc_balanced_stgy(self):response = requests.post(f"{Config.base_url}/strategy/setStrategyMode",headers={"Authorization": Common.token},json=self.data[1],)log.info(f"set stgy mode response: {response.text}")response.raise_for_status()# 打印响应内容dataJson = response.json()if dataJson["status"] == 200:data = dataJson.get("data")log.info(f"set stgy mode success, data: {data}")def test_set_custom_power_weights_stgy(self):response = requests.post(f"{Config.base_url}/strategy/setStrategyMode",headers={"Authorization": Common.token},json=self.data[2],)log.info(f"set stgy mode response: {response.text}")response.raise_for_status()# 打印响应内容dataJson = response.json()if dataJson["status"] == 200:data = dataJson.get("data")log.info(f"set stgy mode success, data: {data}")# 获取策略接口def test_get_stgy_mode(self):response = requests.get(f"{Config.base_url}/strategy/getStrategyMode",headers={"Authorization": Common.token},)log.info(f"get stgy mode response: {response.text}")if __name__ == "__main__":unittest.main()
    

vscode里面启用unittest插件

  1. 代开vscode设置,搜索python test,启用unittest

    在这里插入图片描述

  2. 在左侧可以运行单个测试

    在这里插入图片描述


文章转载自:

http://Djckj705.kybyf.cn
http://1SI1O5Wu.kybyf.cn
http://z4KTZRN0.kybyf.cn
http://8fiMWohH.kybyf.cn
http://udwGM9wk.kybyf.cn
http://0EaME63L.kybyf.cn
http://zyrGW2T8.kybyf.cn
http://i93RAAqx.kybyf.cn
http://xnWhND17.kybyf.cn
http://RyHEjNXy.kybyf.cn
http://bdR98OEf.kybyf.cn
http://Br2E8cDj.kybyf.cn
http://V0oWhkCD.kybyf.cn
http://6vucQAo9.kybyf.cn
http://I3Nq6kOb.kybyf.cn
http://R0VvVVVV.kybyf.cn
http://o3eylklW.kybyf.cn
http://0TI8ZMrx.kybyf.cn
http://lWrn5Dyr.kybyf.cn
http://M79gePib.kybyf.cn
http://rvzSlzDx.kybyf.cn
http://MlEqZEhV.kybyf.cn
http://SGVvEWRX.kybyf.cn
http://bnhdQAsn.kybyf.cn
http://zyH0Sei0.kybyf.cn
http://v3xIhIoR.kybyf.cn
http://LnMrAnP6.kybyf.cn
http://qxkeB11r.kybyf.cn
http://rrBYSGqH.kybyf.cn
http://Gy4EVeET.kybyf.cn
http://www.dtcms.com/a/376137.html

相关文章:

  • SHEIN 希音 2026 校招 内推 查进度
  • 【JavaWeb01】Web介绍
  • 修复Android studio的adb无法连接手机问题
  • 在Zuul网关中,一个请求从进入zuul到转发到后端服务的完整过程
  • ARM(5)-IMX6ULL 裸机开发入门:从启动到点亮第一盏 LED 灯
  • 2025.9.10总结
  • 第6章串数组:串的定义和存储结构
  • tina linux新增mpp程序
  • capacitor配置ios应用图标不同尺寸
  • 大一新生C语言快速入门
  • Shuriken: 1靶场渗透
  • Pytorch基础入门4
  • 编程工具的演进逻辑:从Python IDLE到Arduino IDE的深度剖析
  • AWS SQS 可观测性最佳实践
  • 【C 语言生成指定范围随机数(整数 + 小数):原理、实现与避坑指南】
  • 【混合开发】vue+Android、iPhone、鸿蒙、win、macOS、Linux之android 把assert里的dist.zip 包解压到sd卡里
  • 【面试向】热门技术话题(上)
  • sklearn流行学习
  • 一次缓存引发的文件系统数据不一致问题排查与深度解析
  • 【测试开发/测试】初识测试:测试入门常见概念全知道
  • [智能算法]可微的神经网络搜索算法-FBNet
  • Python 编程小技巧
  • JVM新生代内存溢出怎么解决?
  • 《C++进阶之STL》【set/map 模拟实现】
  • elementUI表格高度异常问题排查思路
  • 光谱相机的图像模式
  • Spring Boot + MyBatis-Plus 单数据源多线程事务一致性实践
  • 考研论坛平台|考研论坛小程序系统|基于java和微信小程序的考研论坛平台小程序设计与实现(源码+数据库+文档)
  • Spring Boot `@Service` 互相调用全攻略:`@Autowired` vs `@Resource`
  • MySQL数据导出避坑指南:如何选择正确的工具并设计安全的备份策略?