求助:Python接口自动化-如何遍历读取excel表格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求助:Python接口自动化-如何遍历读取excel表格相关的知识,希望对你有一定的参考价值。

以下是代码,两个函数意思是分别读取excel表格的第一行和第二行,发起request请求,i代表行数,请教一下,可以怎样把以下代码合并?两个函数差别只在i不同而已。想要做到每读取一行excel表格的内容,就发一次request请求。
def test_request1(self):
i = 0
logger.logger.logger.debug('测试用例: "%s"' % re.test[i]['接口名称'])
# 发送请求
headers = sg.headers
urle = re.test[i]['环境']
url1 = re.test[i]['接口地址']
url = urle + url1
params = re.test[i]['参数']
res = requests.get(url=url, params=params, headers=headers).json()
logger.logger.logger.debug('返回结果:%s]' % (res))
self.assertEqual(res['code'], 'success')

def test_request2(self):
i = 1
logger.logger.logger.debug('测试用例: "%s"' % re.test[i]['接口名称'])
# 发送请求
headers = sg.headers
urle = re.test[i]['环境']
url1 = re.test[i]['接口地址']
url = urle + url1
params = re.test[i]['参数']
res = requests.get(url=url, params=params, headers=headers).json()
logger.logger.logger.debug('返回结果:%s]' % (res))
self.assertEqual(res['code'], 'success')

```

建议直接request把这个excel下载保存到本地
然后用pandas的read_excel读取
这样就读取成dataframe,你想做什么操作都很简单了
参考技术A def test_request(self,n):
for i in range(n):
logger.logger.logger.debug('测试用例: "%s"' % re.test[i]['接口名称'])
# 发送请求
headers = sg.headers
urle = re.test[i]['环境']
url1 = re.test[i]['接口地址']
url = urle + url1
params = re.test[i]['参数']
res = requests.get(url=url, params=params, headers=headers).json()
logger.logger.logger.debug('返回结果:%s]' % (res))
self.assertEqual(res['code'], 'success')

n就是想读取前几行,如果是前两行,n就是2,i会先取0再取1,每读取一行excel表格的内容,就发一次request请求。追问

n值怎么传入?

追答

看到你有self,我猜上面应该还有个class,所以先要实例化
然后,调用test_request(self,n)时候
需要前几行,就把n改成几

追问

我这个函数是写在class SelectMock(unittest.TestCase):这个类下边的,好像不支持这样循环

本回答被提问者采纳

接口自动化测试Python_使用python对excel进行操作

如何使用Python对excel进行简单的操作

一. 通过pip安装xlwt, xlrd这两个模块

      *pip install xlwt

      *pip install xlrd   


二. 准备好一份接口测试用例,excel文档

三. python脚本读取excel内容

 # 读取excel内容
import xlrd

# 获取excel文件存放地址(加r声明为raw字符串,这样就不会处理其中的转义了。否则,可能会报错)
data = xlrd.open_workbook(r\'..\\dataconfig\\interfaceTestCase.xlsx\')
# 获取第1sheet
tables = data.sheets()[0]
# 打印sheet名字
print data.sheet_names()
# 打印行数
print tables.nrows
# 打印第3行第4
print tables.cell_value(2, 3)

运行结果如下:

 

四. 进阶-对象实例化

# coding=utf-8
# 读取excel内容
import xlrd


class OperationExcel:
def __init__(self, file_name=None, sheet_id=None):
if file_name:
self.file_name = self.file_name
self.sheet_id = self.sheet_id

else:
self.file_name = \'..\\dataconfig\\interfaceTestCase.xlsx\'
self.sheet_id = 0
self.data = self.get_data()

# 获取sheets的内容
def get_data(self):
data = xlrd.open_workbook(self.file_name)
tables = data.sheets()[self.sheet_id]
return tables

# 获取单元格的行数
def get_lines(self):
tables = self.data
return tables.nrows

# 获取某一个单元格的内容
def get_cell_value(self, row, col):
return self.data.cell_value(row, col)


if __name__ == \'__main__\':
opers = OperationExcel()
print opers.get_data().nrows
print opers.get_lines()
print opers.get_cell_value(1, 3)

以上是关于求助:Python接口自动化-如何遍历读取excel表格的主要内容,如果未能解决你的问题,请参考以下文章

Python+requests+exce接口自动化测试框架

如何创建 python+requests接口自动化测试框架

求助,python如何在csv插入一列的问题

自动化框架-数据驱动

python 读取csv和excel数据

自动化测试---被玩坏的数据驱动