zoukankan      html  css  js  c++  java
  • 接口自动化测试 python+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中,是否与预期结果一直

  • 相关阅读:
    远程发送和接收数据流生成图片
    iTextSharp 设置 PDF 所有页面背景图功能
    iTextSharp 生成 PDF 问题集合
    C# 中 IL/MSIL , CTS , CLS , CLR , JIT 分别是什么 ?
    django创建项目2 jojo
    selenium键盘操作 jojo
    python格式化 jojo
    安装了Django后,执行djangoadmin.py无法创建工程的解决办法 jojo
    django创建项目1 jojo
    python自带模块模拟鼠标和键盘操作 jojo
  • 原文地址:https://www.cnblogs.com/hemingwei/p/11578496.html
Copyright © 2011-2022 走看看