接口自动化测试 unittest+request+excel

Posted hemingwei

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了接口自动化测试 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中,是否与预期结果一直

 

以上是关于接口自动化测试 unittest+request+excel的主要内容,如果未能解决你的问题,请参考以下文章

python3+requests+unittest:接口自动化测试

python+requests+unittest 搭建接口自动化测试框架

接口自动化测试 unittest+request+excel

Python+unittest+requests 接口自动化测试框架搭建 完整的框架搭建过程 实战

接口自动化测试(Python+Requests+Unittest)

接口自动化测试(Python+Requests+Unittest)