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

Python接口测试之接口关键字封装

🍅点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快

我们使用RF做UI自动化测试的时候,使用的是关键字驱动。同样,Python做接口自动化测试的时候,也可以使用关键字驱动。但是这里并不是叫关键字驱动,而是叫数据驱动。而接口测试的关键字是什么呢? 我们数据驱动的载体是Excel,那么excel里存放的数据是接口测试用例数据,一个接口数据里有常量和变量。变量就是一些参数对应的值,而常量就是接口的:host、path、method和data等等。而这些常量是固定不变的,我们可以将接口测试用例这些常量封装到一个类中,每次执行测试的时候,调用类中某个方法来读取excel中接口关键字对应的值。这些就称之为——关键字数据。

接口关键字封装

众所周知,Excel中第一行字段的值都为固定的值,即常量。可以用这些常量来定位每一个测试用例不同字段的坐标值,将获取到的值传递给接口。

首先我们看看接口测试用例有哪些最主要的关键字常量:

上图基本上是接口测试用例关键的字段,当然可以根据自己项目需要自行添加。

我们在读取每条测试用例的时候,实际上是读取每行的数据,然后可以通过固定的关键字(列)来获取对应的值,最后传递给接口方法来执行接口测试。

封装如下:

class TestCaseKeyWord(object): """ 定义测试用例关键字类 """ CASE_ID = '0' CASE_NAME = '1' IS_EXECUTE = '2' INTERFACE_URL = '3' METHOD = '4' HEADER = '5' REQUEST_DATA = '6' EXPECTED_RESULT = '7' ACTUAL_RESULT = '8' RESULT = '9' # 获取用例id def get_case_id(): return TestCaseKeyWord.CASE_ID # 获取用例名称 def get_case_name(): return TestCaseKeyWord.CASE_NAME # 用例是否执行 def get_case_is_execute(): return TestCaseKeyWord.IS_EXECUTE # 接口url def get_case_interface_url(): return TestCaseKeyWord.INTERFACE_URL # 用例方法 def get_case_method(): return TestCaseKeyWord.METHOD # 请求头 def get_case_header(): return TestCaseKeyWord.HEADER # 请求参数 def get_case_payload(): return TestCaseKeyWord.REQUEST_DATA # 预期结果 def get_case_expected_result(): return TestCaseKeyWord.EXPECTED_RESULT # 实际结果 def get_case_actual_result(): return TestCaseKeyWord.ACTUAL_RESULT # 用例执行结果 def get_case_result(): return TestCaseKeyWord.RESULT if __name__ == '__main__': print(get_case_id()) print(get_case_is_execute())

实例演示

在excel中添加一条测试用例:

新建testcase_test.py文件,获取接口测试用例名称:

from basic_method import testcases_keyword from public.operate_excel import Operate_Excel get_excel = Operate_Excel() # 获取用例数 print(get_excel.get_sheet_nrows()-1) # 返回用例名称关键字的列值 case_name_col = int(testcases_keyword.get_case_name()) print(case_name_col) # 获取第一条用例的名称 get_name = get_excel.get_sheet_cell(1,case_name_col) print(get_name)

执行结果:

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

http://www.jsqmd.com/news/512552/

相关文章:

  • AI赋能 车行无忧|腾视科技ES10终端,为车辆装上“智慧大脑”
  • Topsis算法实战:用Python替代MATLAB完成综合评价(附完整代码)
  • 【Hung-yi Lee】《Introduction to Generative Artificial Intelligence》(3)
  • Matlab仿真实验研究:基于扩展卡尔曼滤波器与无迹卡尔曼滤波器对电力系统状态估计的影响及验证
  • 使用Natapp解决内网穿透问题
  • 机器学习个人笔记(第一节)
  • CMOS反相器的版图绘制与仿真
  • 用COMSOL玩转声学黑洞能量收集
  • 化解开发留坑风险,金仓数据库 99.99% 精准阻击恶意 SQL
  • 创建专属的实验室应用
  • 【Linux】序列化与反序列化——网络计算器的实现
  • 告别漂移!手把手教你用LIO-SAM搭建自己的机器人定位系统(ROS1/ROS2实战)
  • 快速上手Whisper:基于预置镜像的语音识别Web服务搭建指南
  • 程序打不开 提示丢失mscomm32.ocx不要怕 教你免费修复
  • ImportError: libcudss.so.0: cannot open shared object file: No such file or directory
  • 安全驾驶 智在掌控|腾视科技ES06终端,为车辆运营赋能
  • 5步搞定MAI-UI-8B API调用:小白友好的实战教程
  • 如何提升学术交流效率:图文摘要的作用及制作要点
  • C++面试真题分享20260320
  • msjetoledb40.dll丢失损坏怎么办? 免费下载修复方法分享
  • Axios拦截器源码解析:从use方法到Promise链的完整执行流程
  • CCF-202412-T3缓存模拟90分
  • 巴西空运专线市场盘点:五大服务商助力中巴贸易 - 时事观察官
  • remove high frequency but keep low frequency
  • 20252918 2025-2026-2 《网络攻防实践》第1周作业
  • VMware 虚拟机安装--urbutun3种下载的镜像选择指南
  • Clawdbot优化升级:提升Qwen3:32B代理网关性能与稳定性的方法
  • 光伏PV三相并网逆变器MATLAB仿真模型:高效功率输出与稳定直流母线电压
  • RP2040嵌入式视觉平台:轻量级MIPI/并行摄像头采集方案
  • RP2350A开发板硬件设计与电源架构解析