python和excel做接口自动化-Python Api接口自动化测试框架 excel篇

#!/usr/bin/python

# -*- coding: UTF-8 -*-

# 业务包:通用函数

import core.tezMysql as mysql

import core.tezLog as log

import gl

import core.tezExcel as excel

import core.tezRequest as request

from prettytable import PrettyTable

filename = gl.FILE_NAME

logging = log.get_logger()

def prepare_data(host, user, password, db, sql):

"""数据准备,添加测试数据"""

mysql.connect(host, user, password, db)

res = mysql.execute(sql)

mysql.close()

logging.info("Run sql: the row number affected is %s", res)

return res

def get_excel_sheet(path, module):

"""依据模块名获取sheet"""

excel.open_excel(path)

return excel.get_sheet(module)

def replace_holder(value):

"""遍历字典替换占位符"""

for holder in gl.PLACE_HOLDER:

value = value.replace(holder, gl.PLACE_HOLDER[holder])

return value

def get_prepare_sql(sheet):

"""获取预执行SQL"""

return replace_holder(excel.get_content(sheet, gl.SQL_ROW, gl.SQL_COL))

def run_test(sheet, url):

"""再执行测试用例"""

rows = excel.get_rows(sheet)

fail = 0

for i in range(2, rows):

testNumber = str(int(excel.get_content(sheet, i, gl.CASE_NUMBER)))

testData = excel.get_content(sheet, i, gl.CASE_DATA)

testName = excel.get_content(sheet, i, gl.CASE_NAME)

testUrl = excel.get_content(sheet, i, gl.CASE_URL)

testUrl = url + testUrl

testMethod = excel.get_content(sheet, i, gl.CASE_METHOD)

testHeaders = str(excel.get_content(sheet, i, gl.CASE_HEADERS))

testHeaders = eval(replace_holder(testHeaders))

testCode = excel.get_content(sheet, i, gl.CASE_CODE)

actualCode = request.api_test(testMethod, testUrl, testData, testHeaders)

expectCode = str(int(testCode))

failResults = PrettyTable(["Number", "Method", "Url", "Data", "ActualCode", "ExpectCode"])

failResults.align["Number"] = "l"

failResults.padding_width = 1

failResults.add_row([testNumber, testMethod, testUrl, testData, actualCode, expectCode])

if actualCode != expectCode:

logging.info("FailCase %s", testName)

print "FailureInfo"

print failResults

fail += 1

else:

logging.info("Number %s", testNumber)

logging.info("TrueCase %s", testName)

if fail > 0:

return False

return True

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值