当前位置: 首页 > news >正文

从接口自动化测试框架设计到开发(三)主流程封装、返回数据写入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 resprint(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
#把返回结果写入exceldef 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 resself.data.write_result(i,res)#写入数据print(i)print(res)else:print('失败')

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

运行结果:

 excel结果:

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

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

http://www.lryc.cn/news/625606.html

相关文章:

  • 传统艾灸VS七彩喜艾灸机器人:同样的艾香,多了4分“巧”
  • JetBrains系列产品-IDEA/PyCharm/GoLand自动生成方法返回值的快捷键,查看方法参数的快捷键。
  • 0819 使用IP多路复用实现TCP并发服务器
  • Java -- 用户线程和守护线程--线程同步机制
  • Java开发过程中实用的技术点(一)
  • LIA-X - 一张照片生成任意表情肖像动画视频 精准操控面部动作 支持50系显卡 一键整合包下载
  • 免费dll修复?缺少xxx.dll?【图文详解】Visual C++运行库安装?无法定位程序输入点于动态链接库?
  • VulKan笔记(九)-着色器
  • 机器学习--决策树2
  • 力扣57:插入区间
  • 决策树二-泰坦尼克号幸存者
  • 决策树(2)
  • FPGA入门-多路选择器
  • 决策树1.1
  • 机器学习(决策树2)
  • Leetcode 深度优先搜索 (7)
  • Python爬虫第二课:爬取HTML静态网页之《某某小说》 小说章节和内容完整版
  • 【LeetCode】3655. 区间乘法查询后的异或 II (差分/商分 + 根号算法)
  • Mybatis执行SQL流程(四)之MyBatis中JDK动态代理
  • 【HTML】3D动态凯旋门
  • Leetcode 343. 整数拆分 动态规划
  • C++入门自学Day14-- Stack和Queue的自实现(适配器)
  • 神经网络中的那些关键设计:从输入输出到参数更新
  • 面试题储备-MQ篇 3-说说你对Kafka的理解
  • 图论\dp 两题
  • 设计模式笔记_行为型_命令模式
  • 【React】事件绑定和组件基础使用
  • 从线性回归到神经网络到自注意力机制 —— 激活函数与参数的演进
  • java基础(十二)redis 日志机制以及常见问题
  • 2025年12大AI测试自动化工具