IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> Python使用excel进行测试用例执行与测试结果写入 -> 正文阅读

[开发测试]Python使用excel进行测试用例执行与测试结果写入

# coding:utf-8
import xlrd
from xlutils.copy import copy   # 导入xlutils的copy方法
 
class HandleExcel:
    """封装操作excel的方法"""
    def __init__(self, file='E:/PyChram项目集合/interfacetest/excel/30.xls', 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
        # t = self.get_data()  # 调用get_data()取得sheet对象(如果不在构造器获取sheet对象,就需要在方法内先获取sheet对象,再进行下一步操作,每个方法都要这样,所以还是写在构造器中方便)
        # rows = t.nrows
        return rows
 
    # 获取某个单元格数据
    def get_value(self, row, col):
        value = self.data.cell_value(row, col)
        return value
 
    # 向某个单元格写入数据
    def write_value(self, row, col, value):
        data = xlrd.open_workbook(self.file)  # 打开文件
        data_copy = copy(data)  # 复制原文件
        sheet = data_copy.get_sheet(0)  # 取得复制文件的sheet对象
        sheet.write(row, col, value)  # 在某一单元格写入value
        data_copy.save(self.file)  # 保存文件
 
# 封装excel的列名常量
def get_caseseq():
    """获取caseSeq"""
    caseSeq = 0
    return caseSeq
 
 
def get_apitype():
    """获取apiType"""
    apiType = 1
    return apiType
 
 
def get_apiseq():
    """获取apiSeq"""
    apiSeq = 2
    return apiSeq
 
 
def get_apiName():
    """获取apiName"""
    apiName = 3
    return apiName
 
 
def get_priority():
    """获取priority"""
    priority = 4
    return priority
 
 
def get_url():
    """获取url"""
    url = 5
    return url
 
 
def get_method():
    """获取method"""
    method = 6
    return method
 
 
def get_header():
    """获取header"""
    header = 7
    return header
 
 
def get_purpose():
    purpose = 8
    return purpose
 
 
def get_params():
    """获取params"""
    params = 9
    return params
 
 
def get_expectvalue():
    """获取expectValue"""
    expect = 10
    return expect
 
def get_resultvalue():
    result = 11
    return result
 
if __name__ == '__main__':
    test = HandleExcel()
    print(test.get_data())
    print(test.get_rows())
    print(test.get_value(0, 0))
————————————————

2.将操作excel的方法封装好后,准备接口用例来遍历循环

3.编写主函数代码,实现接口用例遍历并将测试结果写入excel表中

# coding:utf-8
 
from mylib.run_method import RunMain
from mylib.handle_excel import *
import json
 
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)
            method = self.data.get_value(i, get_method())  # 循环获取method的值
            print(method)
            if self.data.get_value(i, get_params()) == '':
                data = None
            else:
                data = json.loads(self.data.get_value(i, get_params()))   # 循环获取请求参数,并将得到的数据反序列
            expect = self.data.get_value(i, get_expectvalue()) # 循环获取期望输出
            is_run = self.data.get_value(i, get_priority())  # 获取是否运行,即判断excel中priority是不是"H"
            if is_run == 'H':
                res = self.Runmain.run_main(url, method, data)  # 调用get/post主函数
                print(res)
                if expect in res:
                    print('测试成功')
                    self.data.write_value(i, get_resultvalue(), 'pass')
                else:
                    print('测试失败')
                    self.data.write_value(i, get_resultvalue(), 'fail')
 
if __name__ == '__main__':
    run = RunTestCase()
    run.go_run()

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2022-02-16 13:25:12  更:2022-02-16 13:27:32 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/18 2:59:05-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码