python自动化接口测试excel用例串行之行_自动化 | PYTHON接口自动化测试--使用EXCEL进行测试用例执行与测试结果写入...

转自:https://www.freesion.com/article/3046426995/

1.为了更好的实现读取excel文件进行接口自动化测试,将操作excel文件方法封装:

# coding:utf-8

import xlrd

from xlutils.copy import copy # 导入xlutils的copy方法

class HandleExcel:

"""封装操作excel的方法"""

def __init__(self, file='E:/PyChram项目集合/interfacetest/excel/30.xls', sheet_id=0):

self.file = file

self.sheet_id = sheet_id

self.data = self.get_data()

# 为了在创建一个实例时就获得excel的sheet对象,可以在构造器中调用get_data()

# 因为类在实例化时就会自动调用构造器,这样在创建一个实例时就会自动获得sheet对象了

# 获取某一页sheet对象

def get_data(self):

data = xlrd.open_workbook(self.file)

sheet = data.sheet_by_index(self.sheet_id)

return sheet

# 获取excel数据行数

def get_rows(self):

rows = self.data.nrows

# t = self.get_data() # 调用get_data()取得sheet对象(如果不在构造器获取sheet对象,就需要在方法内先获取sheet对象,再进行下一步操作,每个方法都要这样,所以还是写在构造器中方便)

# rows = t.nrows

return rows

# 获取某个单元格数据

def get_value(self, row, col):

value = self.data.cell_value(row, col)

return value

# 向某个单元格写入数据

def write_value(self, row, col, value):

data = xlrd.open_workbook(self.file) # 打开文件

data_copy = copy(data) # 复制原文件

sheet = data_copy.get_sheet(0) # 取得复制文件的sheet对象

sheet.write(row, col, value) # 在某一单元格写入value

data_copy.save(self.file) # 保存文件

# 封装excel的列名常量

def get_caseseq():

"""获取caseSeq"""

caseSeq = 0

return caseSeq

def get_apitype():

"""获取apiType"""

apiType = 1

return apiType

def get_apiseq():

"""获取apiSeq"""

apiSeq = 2

return apiSeq

def get_apiName():

"""获取apiName"""

apiName = 3

return apiName

def get_priority():

"""获取priority"""

priority = 4

return priority

def get_url():

"""获取url"""

url = 5

return url

def get_method():

"""获取method"""

method = 6

return method

def get_header():

"""获取header"""

header = 7

return header

def get_purpose():

purpose = 8

return purpose

def get_params():

"""获取params"""

params = 9

return params

def get_expectvalue():

"""获取expectValue"""

expect = 10

return expect

def get_resultvalue():

result = 11

return result

if __name__ == '__main__':

test = HandleExcel()

print(test.get_data())

print(test.get_rows())

print(test.get_value(0, 0))

2.将操作excel的方法封装好后,准备接口用例来遍历循环

244476af99c9008f9c2e08c0c3df071e.png

其中:

caseSeq:用例编号

apiType:接口类型

apiSeq:接口编号

apiName:接口名称

priority:优先级

url:接口调用地址

method:协议方法

header:请求头

purpose:用例描述

params:接口参数

expectValue:期望结果

resultValue:测试结果

3.编写主函数代码,实现接口用例遍历并将测试结果写入excel表中

# coding:utf-8

from mylib.run_method import RunMain

from mylib.handle_excel import *

import json

class RunTestCase:

def __init__(self):

self.Runmain = RunMain() # 实例化调用get/post请求基类

self.data = HandleExcel() # 实例化操作excel文件类

def go_run(self):

rows_count = self.data.get_rows() # 获取excel行数

for i in range(1,rows_count): # 利用行数进行迭代处理每个接口

url = self.data.get_value(i, get_url()) # 循环获取url的值

print(url)

method = self.data.get_value(i, get_method()) # 循环获取method的值

print(method)

if self.data.get_value(i, get_params()) == '':

data = None

else:

data = json.loads(self.data.get_value(i, get_params())) # 循环获取请求参数,并将得到的数据反序列

expect = self.data.get_value(i, get_expectvalue()) # 循环获取期望输出

is_run = self.data.get_value(i, get_priority()) # 获取是否运行,即判断excel中priority是不是"H"

if is_run == 'H':

res = self.Runmain.run_main(url, method, data) # 调用get/post主函数

print(res)

if expect in res:

print('测试成功')

self.data.write_value(i, get_resultvalue(), 'pass')

else:

print('测试失败')

self.data.write_value(i, get_resultvalue(), 'fail')

if __name__ == '__main__':

run = RunTestCase()

run.go_run()

运行结果如下:

1afb285a7df57408f5237b4dcc560275.png

excel表格中填入如下:

06e3776ef0fe011b31c3cf00daf06176.png

本篇简单的使用excel进行接口测试用例的执行,在测试过程中最重要的是测试用例的编写,在遇到不同的测试用例执行时会出现不同的问题,还需要多使用多练习,按照实际进行Python接口自动化测试用例编写。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值