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

python+requests+excel 接口测试详解

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

1、EXCEL文件接口保存方式,如图。

2、然后就是读取EXCEL文件中的数据方法,如下:

1 import xlrd 2 3 4 class readExcel(object): 5 def __init__(self, path): 6 self.path = path 7 8 @property 9 def getSheet(self): 10 # 获取索引 11 xl = xlrd.open_workbook(self.path) 12 sheet = xl.sheet_by_index(0) 13 return sheet 14 15 @property 16 def getRows(self): 17 # 获取行数 18 row = self.getSheet.nrows 19 return row 20 21 @property 22 def getCol(self): 23 # 获取列数 24 col = self.getSheet.ncols 25 return col 26 27 # 以下是分别获取每一列的数值 28 @property 29 def getName(self): 30 TestName = [] 31 for i in range(1, self.getRows): 32 TestName.append(self.getSheet.cell_value(i, 0)) 33 return TestName 34 35 @property 36 def getData(self): 37 TestData = [] 38 for i in range(1, self.getRows): 39 TestData.append(self.getSheet.cell_value(i, 1)) 40 return TestData 41 42 @property 43 def getUrl(self): 44 TestUrl = [] 45 for i in range(1, self.getRows): 46 TestUrl.append(self.getSheet.cell_value(i, 2)) 47 return TestUrl 48 49 @property 50 def getMethod(self): 51 TestMethod = [] 52 for i in range(1, self.getRows): 53 TestMethod.append(self.getSheet.cell_value(i, 3)) 54 return TestMethod 55 56 @property 57 def getUid(self): 58 TestUid = [] 59 for i in range(1, self.getRows): 60 TestUid.append(self.getSheet.cell_value(i, 4)) 61 return TestUid 62 63 @property 64 def getCode(self): 65 TestCode = [] 66 for i in range(1, self.getRows): 67 TestCode.append(self.getSheet.cell_value(i, 5)) 68 return TestCode

3、EXCEL中的数据读取成功后,然后我们需要对于读出来的数据进行相应的处理。如下。当然示例中只是简单列了一下关于POST,GET等二种方式,实际还有很多其它方式,如put,delete等,请求中也还会包括headers,这些都可以自已添加上去。

1 import requests 2 import json 3 from xl.read_xl import readExcel 4 from pubulic_way.get_token import get_token 5 6 7 class testApi(object): 8 def __init__(self, method, url, data): 9 self.method = method 10 self.url = url 11 self.data = data 12 13 14 @property 15 def testApi(self): 16 # 根据不同的访问方式来访问接口 17 try: 18 if self.method == 'post': 19 r = requests.post(self.url, data=json.dumps(eval(self.data))) 20 elif self.method == 'get': 21 r = requests.get(self.url, params=eval(self.data)) 22 return r 23 except: 24 print('失败') 25 26 def getCode(self): 27 # 获取访问接口的状态码 28 code = self.testApi.json()['error'] 29 return code 30 31 def getJson(self): 32 # 获取返回信息的json数据 33 json_data = self.testApi.json() 34 return json_data

4、最后我们就可以调用之前准备好的方法进去测试了。

1 from base.base_test import baseTest 2 from xl.read_xl import readExcel 3 from pubulic_way.test_api_way import testApi 4 import unittest 5 6 7 class testLoginApi(unittest.TestCase): 8 def testLoginApi(self): 9 '''测试发布评伦接口。''' 10 excel = readExcel(r'F:\path\add_thread_data.xlsx') 11 name = excel.getName 12 data = excel.getData 13 url = excel.getUrl 14 method = excel.getMethod 15 uid = excel.getUid 16 code = excel.getCode 17 row = excel.getRows 18 for i in range(0, row - 1): 19 api = testApi(method[i], url[i], data[i]) 20 apicode = api.getCode() 21 apijson = api.getJson() 22 if apicode == code[i]: 23 print('{}、{}:测试成功。json数据为:{}'.format(i + 1, name[i], apijson)) 24 else: 25 print('{}、{}:测试失败'.format(i + 1, name[i])) 26 27 28 if __name__ == '__main__': 29 unittest.main(verbosity=2)

5、最后还需要把我们的结果展示出来,这个就很简单了,利用htmltestrunner来展示。展示一张报告的切图。

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

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

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

相关文章:

  • Cap:开源版的 Loom,录屏分享这件事它包了
  • 从单兵到团队:用AI智能体协作框架构建高效自动化工作流
  • 深入JVM调优实战:从内存模型到GC优化,让你的Java应用性能飙升
  • 中山灯具厂出海布局遇阻,一份出海战略规划如何扭转困局
  • Mermaid:用 Markdown 写图表,文档告别画图死
  • 鸿蒙新特性:Radio 单项选择组件——构建健康评估问卷
  • kconfigDetector错误类型详解:从type error到unmet dependence的完整解析
  • 冒泡排序:从经典到大数据,一文掌握多种解法与演进
  • 高光谱拼接算法(一)扫推式成像和航带拼接算法
  • okbiye 一站式毕业论文 AI 写作板块,解决毕业生全流程论文撰写难题
  • 计算机毕业设计之旅行社网站的设计与实现
  • 2026年写小说软件排行榜:实测7款ai写小说工具,小说软件生成器哪家强?
  • 手机号码定位查询系统:3步实现号码归属地精准查询的完整指南
  • Linux字符设备驱动开发实战:从Hello World到完整驱动框架
  • B站视频下载神器:3分钟掌握BiliDownloader的完整使用指南
  • H2database 2.1.210 以下版本漏洞剖析:从JNDI注入到CVE-2022-23221的完整攻击链
  • 开源电子课本解析工具:如何轻松获取国家中小学智慧教育平台PDF教材
  • 终极指南:高效获取国家中小学智慧教育平台电子课本的完整解决方案
  • TMC7300与PIC18F86J15构建的高效有刷直流电机控制方案
  • 考个NPDP证书要花多少钱?这笔账,算清楚再报名!
  • 导航树有没有在表单的“表单加载后”事件中加载导航树第一个节点的API
  • 3步免费获取国家中小学智慧教育平台电子课本PDF:教师必备的终极下载指南
  • Scikit-learn K-Means 实战:3 个关键参数调优与 2 种评估指标对比
  • 从软件到认知:WSaiOS智能操作系统的架构范式革命
  • RTSP 拉流与录制:IPC 摄像头本地录像完整方案
  • SRWE窗口编辑器完整指南:如何突破Windows窗口限制的终极解决方案
  • 不同AI工具在选股配套信息整理、复盘记录中的适配环节分析
  • Cursor vs Claude Code:从LLM底层token调度策略到IDE插件沙箱隔离机制,一文拆解二者在企业代码合规性审计中的致命差异
  • 专业级QMC音频解密实战指南:高效转换QQ音乐加密文件
  • Hermes智能体框架实战:从部署到验证持久记忆与技能自进化