接口自动化测试 python+request+excel(七)

前面学习了读取Excel,这次将返回数据写入Excel中,然后进行判断,该条测试用例是否通过

封装写入Excel,在handle_excel.py加入,之前预留了write_value,现在就可以进行封装,在前面加上

from xlutils.copy import copy

from xlutils.copy import copy
    # 向某个单元格写入数据
    def write_value(self, row, col, value):
        data = xlrd.open_workbook(self.file)    # 打开文件
        data_copy = copy(self.file)             # 复制源文件
        sheet = data_copy.get_sheet(0)          # 取得复制文件的sheet对象
        sheet.write(row, col, value)            # 在某一单元格写入value
        data_copy.save(self.file)               # 保存文件

如果打不开Excel文件,请看解决办法:https://www.cnblogs.com/hemingwei/p/11585799.html

在主函数run_handle_excel.py加入写入Excel的方法

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

from conn.run_demo import RunMain
from interface.tool.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的值
            method = self.data.get_value(i, get_mothod())   # 循环获取method的值
            print(self.data.get_value(i, get_params()))
            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是不是为“high"
            if is_run == 'high':
                res = self.Runmain.run_main(url, method, data)      # 调用主函数,res就是返回的参数
                self.data.write_value(i, get_actualvalue(), res)    # 将实际结果写入Excel中
                if expect in res:           # res返回的内容是否包含expect,是否与期望一致
                    print('测试通过')
                    self.data.write_value(i, get_resultvalue(), 'pass') # 调用写入数据方法,将结果写进Excel
                else:
                    print("测试失败")
                    self.data.write_value(i, get_resultvalue(), 'fail')


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

 

得到结果:

 

 

posted on 2019-09-26 15:58  逗芽  阅读(352)  评论(0编辑  收藏  举报

导航