接口自动化测试 unittest+request+excel(五)

封装操作Excel方法,后续功能进行直接调用

#!/usr/bin/env python3
# -*-coding:utf-8-*-
# __author__: hunter

import xlrd

class HandleExcel:
    """封装操作Excel的方法"""

    def __init__(self, file=‘D:/hunter_/interfaceTest/interface/tool/demo2.xlsx‘, 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

        return rows

    # 获取某个单元格写入数据
    def get_value(self, row, col):
        value = self.data.cell_value(row, col)
        return value

    # 向某个单元格写入数据
    def write_value(self):
        pass

# 封装Excel的列名常量
def get_caseseq():
    ‘‘‘获取caseSeq‘‘‘
    caseSeq = 0
    return caseSeq

def get_apitype():
    apiType = 1
    return apiType

def get_apiseq():
    apiSeq = 2
    return apiSeq

def get_apiName():
    apiName = 3
    return apiName

def get_priority():
    priority = 4
    return priority

def get_url():
    url = 5
    return url

def get_mothod():
    mothod = 6
    return mothod

def get_header():
    header = 7
    return header

def get_purpose():
    purpose = 8
    return purpose

def get_params():
    params = 9
    return params

def get_expectvalue():
    expectvalue = 10
    return expectvalue

if __name__ == ‘__main__‘:
    test = HandleExcel()
    print(test.get_data())
    print(test.get_rows())
    print(test.get_value(0, 0))

Excel表格数据:

调用封装Excel的封装方法,进行循环遍历

#!/usr/bin/env python3
# -*-coding:utf-8-*-
# __author__: hunter

from conn.run_demo import RunMain
from interface.tool.handle_excel import *

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)
            print(‘=====‘)
            method = self.data.get_value(i, get_mothod())   # 循环获取method的值
            data = self.data.get_value(i, get_params())     # 循环获取请求参数
            print(data)
            print(‘=====‘)
            is_run = self.data.get_value(i, get_priority()) # 获取是否运行,即判断Excel中priority是不是为“high"
            if is_run == ‘high‘:
                res = self.Runmain.run_main(url, method, data)  # 调用主函数
                print(res)
                print(‘=====‘)

if __name__ == ‘__main__‘:
    run = RunTestCase()
    run.go_run()

运行:

接下来就是将测试结果写入Excel中,是否与预期结果一直

原文地址:https://www.cnblogs.com/hemingwei/p/11578496.html

时间: 2024-08-30 13:06:30

接口自动化测试 unittest+request+excel(五)的相关文章

接口自动化测试 unittest+request+excel(八)

完善接口自动化测试框架,加入日志模块 #!/usr/bin/env python3 # -*-coding:utf-8-*- # __author__: hunter import logging import os import time class Logger: def __init__(self, loggername): # 创建一个logger self.logger = logging.getLogger(loggername) self.logger.setLevel(loggi

接口自动化测试 unittest+request+excel(踩‘坑’)

通过运行主函数,返回的参数,报json解析错误 正常的返回参数,应该如图 造成这个原因的是: python从excel中解析出来的数据类型不是字典,是字符串,所以无法传递给requests当做请求参数 需用用json.loads()转成字典格式,然后进行传参 对python从Excel中解析出来的数据类型进行测试一波 #!/usr/bin/env python3 # -*-coding:utf-8-*- # __author__: hunter import xlrd import json i

接口自动化测试 unittest+request+excel(二)

上一节是接口测试单条测试get/post,加上封装. 通过学习到unittest,使用其中的unittest.TestCase和Testsuit #!/usr/bin/env python3 # -*-coding:utf-8-*- # __author__: hunter import unittest from conn.run_demo import RunMain # 上一节写的类,进行调用 import HTMLTestRunner import json class TestMeth

python 接口自动化测试--框架整改(五)

代码结构: 目标架构: 1.用例分析器,自动根据接口的参数,类型生成测试用例 2.数据分析器,自动维护接口参数数据,动态数据自动生成,返回结果自动查询判断 3.核心调用引擎,分SOAP和HTTP两种,调用用例,返回接口调用的结果 4.报告输出,统计用例通过率,错误日志,数据库持久化,持续集成 目前实现功能: 核心调用引擎,数据分析器(demo) 1.用例结构(更新) excel分两个sheet,sheet1中存放用例,结构如下 sheet2中存放测试环境host,接口wsdl地址,接口方法间的映

python接口自动化测试(十一)-写入excel(xlswriter)--生成图表

一.折线图: # -*- coding:utf-8 -*- import xlsxwriter # 创建一个excel workbook = xlsxwriter.Workbook("chart_line.xlsx") # 创建一个sheet worksheet = workbook.add_worksheet() # worksheet = workbook.add_worksheet("bug_analysis") # 自定义样式,加粗 bold = workb

python接口自动化测试(十)-写入excel(xlswriter)

 一.安装xlrd模块: 1.mac下打开终端输入命令: pip install XlsxWriter 2.验证安装是否成功: 在mac终端输入 python  进入python环境 然后输入 import xlswriter 不报错说明模块安装成功 二.常用方法: 1.创建excel文件 # 创建文件 workbook = xlsxwriter.Workbook("new_excel.xlsx")  2.创建sheet # 创建sheet worksheet = workbook.a

python接口自动化测试 - unittest框架基本使用

unittest简单介绍 单元测试框架 还可以适用WEB自动化测试用例的开发与执行 提供丰富的断言方法 官方文档:https://docs.python.org/zh-cn/3/library/unittest.html unittest基础使用 1 # 导入unittest模块 2 import unittest 3 4 5 # 创建单元测试类,继承unittest.TestCase 6 class testCase(unittest.TestCase): 7 8 def setUp(self

python接口自动化测试 - unittest框架suite、runner详细使用

test suite 测试套件,理解成测试用例集 一系列的测试用例,或测试套件,理解成测试用例的集合和测试套件的集合 当运行测试套件时,则运行里面添加的所有测试用例 test runner 测试运行器 用于执行和输出结果的组件 test suite.test runner基础使用 单元测试类 1 # 创建单元测试类,继承unittest.TestCase 2 class testCase(unittest.TestCase): 3 4 # 测试case 5 def test_01(self):

api4excel - 接口自动化测试excel篇

api4excel - 接口自动化测试excel篇 工作原理: 测试用例在excel上编辑,使用第三方库xlrd,读取表格sheet和内容,sheetName对应模块名,Jenkins集成服务发现服务moduleName查找对应表单,运用第三方库requests请求接口,根据结果和期望值进行断言,根据输出报告判断接口测试是否通过. 1. 数据准备 数据插入(容易实现的测试场景下所需外部数据) 准备sql (接口需要重复使用,参数一定得是变量) 2.集成部署(运维相关了解即可) 平滑升级验证脚本加