从接口自动化测试框架设计到开发(三)主流程封装、返回数据写入excel

主流程封装

复制代码
#Run_Test.py
# -*- coding: utf-8 -*-
# @Author: jiujiu
# @Date:   2020-03-04 16:30:31
# @Last Modified time: 2020-03-05 15:00:46
import sys
sys.path.append("G:/uni_test")
#添加当前过程的目录
import json
from base.run_method import RunMethod
from data.get_data import GetData
class RunTest:
    def __init__(self):
        self.runmethod = RunMethod()
        self.data = GetData()
    #程序执行
    def go_on_run(self):
        res = None
        #如果有10行,循环遍历每一行,从0行开始
        rows_count = self.data.get_case_lines()
        #排除0行,从第1行开始
        for i in range(1,rows_count):
            is_run = self.data.get_is_run(i)
            if is_run:
                url = self.data.get_request_url(i)
                method = self.data.get_request_method(i)
                data = self.data.get_data_for_json(i)#传入行数
                # request_data = self.data.get_data(i)
                header = self.data.is_header(i)
                # print(i)
                res = self.runmethod.run_main(method,url,data,header)
                # return res
                print(i)
                print(res)
            else:
                print('失败')
            # if is_run :
            #     res = self.runmethod.run_main(method,url,data,header)
            #     return res
            # else:
            #     return None
if __name__ == '__main__':
    run = RunTest()
    print(run.go_on_run())

返回结果:

如果想确定接口有没有挂掉,运行是否正常可以加上

复制代码
return res.status_code

如果返回200,说明运行正常,可以和预期结果在一起比对,就能实现上线以后查看接口运行情况的测试。

如果要处理返回数据,使用

复制代码
json.dumps(res,ensure_ascii=False,sort_keys=True,indent=2)

将返回的数据写入excel中

首先安装包

复制代码
pip install xlutils
复制代码
#operation_excel.py        
#写入数据
    def write_value(self,row,col,value):
        read_data = xlrd.open_workbook(self.file_name)#打开文件
        write_data = copy(read_data)#复制文件
        sheet_data = write_data.get_sheet(0)#获取第一个表
        sheet_data.write(row,col,value)#写入数据
        write_data.save(self.file_name)
复制代码
#get.data.py
#把返回结果写入excel
    def write_result(self,row,value):
        col = int(self.dataconfig.get_result())
        result = self.opera_excel.write_value(row,col,value)
复制代码
#Run.Test.py    
#程序执行
    def go_on_run(self):
        res = None
        #如果有10行,循环遍历每一行,从0行开始
        rows_count = self.data.get_case_lines()
        #排除0行,从第1行开始
        for i in range(1,rows_count):
            is_run = self.data.get_is_run(i)
            if is_run:
                url = self.data.get_request_url(i)
                method = self.data.get_request_method(i)
                data = self.data.get_data_for_json(i)#传入行数
                # request_data = self.data.get_data_for_json(i)
                header = self.data.is_header(i)
                # print(i)
                res = self.runmethod.run_main(method,url,data,header)
                # return res
                self.data.write_result(i,res)#写入数据
                print(i)
                print(res)
            else:
                print('失败')

我把post和get方法里面返回的res改成了res.url,即返回请求的url

运行结果:

excel结果:

预期结果这一列已写入了返回的数据

高薪必备!18K接口自动化测试框架落地全流程|零基础到实战通关

相关推荐
数据知道1 分钟前
PostgreSQL实战:详解如何用Python优雅地从PG中存取处理JSON
python·postgresql·json
ZH154558913114 分钟前
Flutter for OpenHarmony Python学习助手实战:面向对象编程实战的实现
python·学习·flutter
玄同76514 分钟前
SQLite + LLM:大模型应用落地的轻量级数据存储方案
jvm·数据库·人工智能·python·语言模型·sqlite·知识图谱
User_芊芊君子19 分钟前
CANN010:PyASC Python编程接口—简化AI算子开发的Python框架
开发语言·人工智能·python
白日做梦Q30 分钟前
Anchor-free检测器全解析:CenterNet vs FCOS
python·深度学习·神经网络·目标检测·机器学习
吃杠碰小鸡30 分钟前
高中数学-数列-导数证明
前端·数学·算法
kingwebo'sZone36 分钟前
C#使用Aspose.Words把 word转成图片
前端·c#·word
喵手44 分钟前
Python爬虫实战:公共自行车站点智能采集系统 - 从零构建生产级爬虫的完整实战(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·采集公共自行车站点·公共自行车站点智能采集系统·采集公共自行车站点导出csv
喵手1 小时前
Python爬虫实战:地图 POI + 行政区反查实战 - 商圈热力数据准备完整方案(附CSV导出 + SQLite持久化存储)!
爬虫·python·爬虫实战·零基础python爬虫教学·地区poi·行政区反查·商圈热力数据采集
xjt_09011 小时前
基于 Vue 3 构建企业级 Web Components 组件库
前端·javascript·vue.js