python3实现读取Excel进行接口自动化测试

# -*- coding:utf-8 -*-
# auther = 林深见鹿
# excel_controller.py


import xlrd
import xlwt
from CoreMail.Tools import excel_data


'''
xlrd.open_workbook(file_path),打开Excel
openexcel.sheet_by_index(0);索引到sheet页
sheet1.nrows:行数
sheet1.ncols:列数
遍历行数/列数,读取Excel单元格中数据
'''
def OpenExcel():
    openexcel = xlrd.open_workbook(r"C:\\Users\\xckj-XXX\\PycharmProjects\\ZDHYW\\CoreMail\\Tools\\api_all.xls")
    sheet1 = openexcel.sheet_by_index(0)
    print("总行数:",sheet1.nrows)
    print("总列数:",sheet1.ncols)
    excel_list = []
    for i in range(sheet1.nrows):
        if i == 0:
            continue
        data = excel_data.Data()
        data.url = sheet1.row_values(i)[1]
        data.method = sheet1.row_values(i)[2]
        data.params = sheet1.row_values(i)[3]
        data.case_number = sheet1.row_values(i)[0]


        # print(data.url)
        # print(data.method)
        # print(data.params)
        # print(data.api_name)
        # print(data.case_number)
        excel_list.append(data)
    # print(excel_list)
    return excel_list

OpenExcel()

'''
table.write方法无法关联,直接使用即可
writeexcel.add_sheet("sheet1"):创建一个Excel表格,名称为:sheet1
table.write(0,0,"ID"):第一行第一列写入数据
writeexcel.save(file_name_path)保存文件
'''

def WriteExcel():
    writeexcel = xlwt.Workbook(encoding="utf-8")
    table = writeexcel.add_sheet("sheet1")
    table.write(0,0,"ID")
    writeexcel.save(r"C:\\Users\\xckj-XXX\\PycharmProjects\\ZDHYW\\CoreMail\\Tools\\test.xls")
# WriteExcel()
# -*- coding:utf-8 -*-
# auther = 林深见鹿
# date = 20210816

'''
readme:
allow_redirects = False禁止重定向,添加在request后参数内
get请求用params传参
post请求:数据类型form,用data传参
post请求:数据类型json,用json传参
timeout:模拟请求超时时间
通过读取CoreMail项目下Tools中的excel(接口测试用例),执行接口测试
接口参数要用dict类型传参
url,method要用str类型传参
通过读取method,判断请求方式,针对get和post请求方式分别使用不同数据类型传参
'''




import requests
from CoreMail.Tools import excel_controller
import json
import logging


'''
logging相关配置
Log_Format: 配置日志输出格式
Date_Format: 配置输出时间格式
logging.basicConfig: 添加logging相关配置:
level:默认展示最低输出等级;
filename:log文件路径(注释掉即输出在控制台;
filemode:log文件打开方式
'''

Log_Format = "%(asctime)s %(name)s %(levelname)s %(message)s "
Date_Format = '%Y-%m-%d  %H:%M:%S %a'
logging.basicConfig(level=logging.DEBUG,
                    format=Log_Format,
                    datefmt=Date_Format,
                    filename=r"C:\Users\xckj-XXX\PycharmProjects\ZDHYW\CoreMail\Logs\logs.log",
                    filemode='w')
datalist = excel_controller.OpenExcel()

def all_api():

    for i in datalist:
        # print("url:",i.url)
        # print("method:",i.method)
        # print("params:",i.params)
        # print("api_name:",i.api_name)
        # print("case_number:",case_number)
        _url = i.url
        param = i.params
        data = json.loads(param,strict = False)
        api_name = i.api_name
        case_number = i.case_number

        print(i.method)
        method = i.method
        try:
            if method == 'post':
                # print(type(data))
                # print(type(method))
                r = requests.request(method=method,url=_url,json=data)
                print("测试用例编号:",case_number)
                print("API:",_url)
                print('状态码:',r.status_code)
                print("返回报文:",r.text,end='\n')
                result = r.json()
                if result["resultFlag"]== 'SUCCESS':
                    print("测试用例%s执行成功"%(case_number))
                else:
                    print("测试用例%s执行失败"%(case_number))

            elif method == 'get':
                r = requests.request(method=method,url=_url,params=data)
                print("测试用例编号:",case_number)
                print("API:",_url)
                print('状态码:',r.status_code)
                print("返回报文:",r.text,end='\n')
                result = r.json()
                if result["resultFlag"]== 'SUCCESS':
                    print("测试用例%s执行成功"%(case_number))
                else:
                    print("测试用例%s执行失败"%(case_number))

            else:
                print("暂不支持%s类型的请求方式:"%(method))
                print("测试用例编号:",case_number)
        except Exception as error:
            print("!!!---------------error---------------!!!:",error)
            continue
all_api()

 

 
# -*- coding:utf-8 -*-
# auther = 林深见鹿
# date = 20210816
# excel_data.py


class Data:
    url = ''
    # print(url)
    method =''
    # print(method)
    params = {}
    # print(params)
    api_name = ''
    # print(api_name)
    case_number = ''
    # print(case_number)



 

 all_api.xls

posted @ 2021-09-13 23:28  林深见鹿,海蓝见鲸  阅读(265)  评论(0编辑  收藏  举报