python接口自动化项目_python 接口自动化实现

之前已经使用python+unittest+jekenis实现一个项目持续集成每天定时run,测试用例全是写在代码里,后面想使用Excel的方式实现用例。在我找了两天时间的博客加上自己不断的尝试,后来在参考了JoyceChen_的文章结合自己的实际项目简单的实现了从Excel中断区测试用例,把执行结果反写进测试用例中并生成一个当前时间的测试报告,废话少说上代码

1.目录结构:

f12fd3c35ff8484490c9fbde73ebd2e6.jpg

代码结构很简单,先实现最简单的 吧,然后再改造

2.interfacetest.py

#__coding:utf-8 _

import requests

import xlrd

import json

import xlwt

from xlrd import open_workbook

#打开一个目录下的Excel

def xlsx_open(filepath):

book=xlrd.open_workbook(filepath)

print(book)

return book

#读取测试用例每一列值并赋值给一个参数,这些参数然后在存放到object字典中

def xlsx_getRow(sheet,row):

object={}

object[‘method’]=sheet.cell_value(row,2)

object[‘host’]=sheet.cell_value(row,3)

object[‘path’]=sheet.cell_value(row,4)

object[“url”]=object[‘host’]+object[‘path’]

object[‘params’]=sheet.cell_value(row,5)

object[‘header’]=sheet.cell_value(row,6)

object[‘code’]=sheet.cell_value(row,7)

object[‘expected_code’]=sheet.cell_value(row,8)

if object[‘header’]"":

object[“header”]=None

print(object)

return object

#接口执行get和post请求

def xlsx_request(object):

try:

if object[‘method’]“post”:#post请求类型

#json.loads是把变量json格式化

response=requests.post(url=object[‘url’],data=json.loads(object[‘params’]),headers=object[‘header’],cookies=object[‘cookies’])

result=response.json()

elif object[‘method’]==“get”:#get请求类型

response = requests.get(object[“url”], object[“params”], headers=object[“header”],cookies=object[“cookies”])

result=response.json()

else:

print(“Unknow method”+object[‘method’])

except requests.exceptions.ConnectTimeout as e:

result={object[‘code’]:“timeout”}

print(result)

return result

#设置检查点没有通过时标记红色,通过标记绿色

def xlsx_set(sheet,row,col,value,red=False):

style=“font:colour_index red;”

style1=“font:colour_index green;”

if red==False:

sheet.write(row,col,value,xlwt.easyxf(style1))

else:

sheet.write(row,col,value,xlwt.easyxf(style))

#保存文件方法

def xlsx_save(book,filepath):

book.save(filepath)

#遍历测试用例和检查点

def dosheet(brd,bwt,sheetIndex,cookies=None):

#获取测试用例文件第几个sheet

brd_steet=brd.sheets()[sheetIndex]

print(“brd_steet=”,brd_steet)

#获测试结果Excel 的第几个sheet

bwt_sheet=bwt.get_sheet(sheetIndex)

print(“bwt_sheet=”,bwt_sheet)

#获取测试用例共有多少条

count=brd_steet.nrows

for i in range(1,count):

object=xlsx_getRow(brd_steet,i)

object[‘cookies’]=cookies

result=xlsx_request(object)

#检查检查点是否通过,通过给pass 不通过给fail

if result.get(object[‘code’])==object[‘expected_code’]:

xlsx_set(bwt_sheet,i,9,“pass”,False)

xlsx_set(bwt_sheet,i,10,result[object[‘code’]],False)

else:

xlsx_set(bwt_sheet,i,9,“fail”,True)

xlsx_set(bwt_sheet,i,10,result[object[‘code’]],False)

代码我加了很详细的备注,我是按照我理解的加的配置,中间还加了一些测试print的语句帮助理解程序是怎么走的。

3.runtest.py

546f4333e762416ca54454f2d1d8d9f7.jpg

这里是run的代码。

26ee377d2a07450197c001f15d47c9c4.jpg

这个是我case的文件。

上面这些是在python3.4版本运行的。我也是刚刚跑通才写的这篇文章希望能帮助也在学习的同学,后面我会把我上面说的已经再run的项目也写一篇文章,后面也会不断更新细化今天这个例子希望早日使用到项目run起来。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值