Python+Requests+Excel接口测试实战

2023-09-13 14:39:58

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来展示。展示一张报告的切图。


下面是配套学习资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!

更多推荐

JavaScript之观察者模式

本文作者为360奇舞团前端开发工程师概述在日常开发中,开发人员经常使用设计模式来解决软件设计中的问题。其中,观察者模式是一种常用的模式,它可以帮助开发人员更好地处理对象之间的通信。在JavaScript中,观察者模式的应用非常广泛,可以用于实现事件处理、数据绑定等功能。本文将介绍观察者模式的基本概念和实现方式。什么是观

大数据之Hadoop

大数据按顺序给出数据存储单位:bit、Byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DB。1Byte=8bit1K=1024Byte1MB=1024K1G=1024M1T=1024G1P=1024THadoopHadoop是一个能够对大量数据进行分布式处理的软件框架。分布式处理是指:比如有100

苹果CMS主题 MXonePro二开优化修复开源版影视网站源码

MXPro模板主题(又名:mxonepro)是一款基于苹果cms程序的一款全新的简洁好看UI的影视站模板类似于西瓜视频,不过同对比MxoneV10魔改模板来说功能没有那么多,也没有那么大气,但是比较且可视化功能较多简洁且有周更记录样式等多功能后台设置,类似预mxone魔改版的预告片功能,用来做影视站模板也是极好的,但之

【go语言】条件,选择,循环和特殊语句

if语句a:=10ifa>20{fmt.Printf("a大于20")}elseifa<10{fmt.Printf("a小于10")}else{fmt.Printf("a大于等于10,a小于等于20")}go语言的if语句和C语言的if语句的差不多,需要注意的是else和elseif要写在括号右边;go语言的if语句还

golang http

函数说明http.ServeMux是Go语言标准库中的一个多路复用器(multiplexer)。它用于路由和处理HTTP请求,将请求分发到相应的处理器函数。http.HandleFunc是Go语言标准库中的一个函数,用于注册处理器函数来处理HTTP请求。它是对http.ServeMux的简化封装,方便快速实现路由功能。

微信小程序通过 wxministore 实现类似于vuex的全局装填数据管理

首先我们打开终端引入依赖npminstallwxministore--save然后如果你是新版开发者工具就npmi构建一下如果你是老版本的微信开发者工具就打开右上角详情选择本地管理勾选使用npm模块然后在根目录下创建一个store.js当然建在哪是你自己决定的反正后面能引入到就好然后store.js编写代码如下impo

Java版分布式微服务云开发架构 Spring Cloud+Spring Boot+Mybatis 电子招标采购系统功能清单

项目说明随着公司的快速发展,企业人员和经营规模不断壮大,公司对内部招采管理的提升提出了更高的要求。在企业里建立一个公平、公开、公正的采购环境,最大限度控制采购成本至关重要。符合国家电子招投标法律法规及相关规范,以及审计监督要求;通过电子化平台提高招投标工作的公开性和透明性;通过电子化招投标,使得招标采购的质量更高、速度

MyBatis 缓存模块

文章目录前言缓存的实现Cache接口PerpetualCache缓存的应用缓存对应的初始化一级缓存二级缓存第三方缓存前言MyBatis作为一个强大的持久层框架,缓存是其必不可少的功能之一,Mybatis中的缓存分为一级缓存和二级缓存。但本质上是一样的,都是使用Cache接口实现的。缓存的实现Cache接口Cache接口

WebGL 初始化着色器

目录前言初始化着色器的7个步骤创建着色器对象(gl.createShader())gl.createShader()规范gl.deleteShader()规范指定着色器对象的代码(gl.shaderSource())gl.shaderSource()规范编译着色器(gl.compileShader())gl.compi

动力节点老杜JavaWeb笔记(全)

Servlet关于系统架构系统架构包括什么形式?C/S架构B/S架构C/S架构?Client/Server(客户端/服务器)C/S架构的软件或者说系统有哪些呢?QQ(先去腾讯官网下载一个QQ软件,几十MB,然后把这个客户端软件安装上去,然后输入QQ号以及密码,登录之后,就可以和你的朋友聊天了,就可以使用这个软件了。)C

为何学linux及用处

为何学linux及用处目前企业使用的操作系统无非就是国产类的,windows和linux类。我们要提升自己的技能,需要学习这两款。我记得在大学时期,学习过windows以及linux,但当时觉得又不常用,就学的模棱两可。毕业之后,你会发现,其实这两种操作系统是很主流的。为什么学?下面就是一些工作中遇到的例子分享一下。我

热文推荐