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

Python+requests+unittest+excel实现接口自动化测试框架

在刚刚进入测试行业的时候,最开始也是做功能测试,我想很多伙伴和我一样,觉得自动化测试都很高端,很神秘。迫不及待的想去学习作自动化测试。

以前比较常用数据库+python做自动化,后面发现excel个人觉得更加适合,刚开始自己做自动话测试的时候,很急切的想立刻搭建好整个框架,但心急吃不了热豆腐,

还是从基本的开始,这里介绍python结合excel数据实现单个接口自动化测试的步骤,理解了这个,后面就可以用到整个框架,封装成公用模块,批量读取数据,执行数据。

现在以我们公司的一登录接口为列,输入参数有"doc_info","user_pwd","source"三项,只有当"doc_info = "15899860330",","user_pwd" = 123456a,时候,才能返回正确的json格式,返回的code为 “000000”返回如图所示:

如参数有误,会返回不同的code,以及原因

到这里,开始就有思路了,针对这个接口,我们像功能测试一样,写下来有哪些用列,然后设计好表格,填入excel表,如图

接下里我们要检查返回的code值是不是和我们期望的值(即expected_code单元格中的内容)相等,如一致,代表该用列通过。如何实现了,请看下面代码

如最后都是pass,如图,则表示用例执行成功

一个接口与excel数据的自动化测试就完成了,以上登录接口不是真实存在的, 本人只是举个列子,具体请用有效的接口。

在实际操作的过程中,我们有时候希望将我们判断的最终打印出来的结果写入到excel表中的一个字段里面,如final_reslut,这样我们打开excel表的时候更加清晰,相当于可以做一个测试报告

python中可以引用xlwt3模块,可以对excel写入数据,但发现这样感觉比较麻烦,可不可以不引用xlwt3,直接在原来的用列表写入了?答案是肯定的。 后面我会针对这个继续更新。


              【下面是我整理的2023年最全的软件测试工程师学习知识架构体系图】


一、Python编程入门到精通

二、接口自动化项目实战 

三、Web自动化项目实战


四、App自动化项目实战 

五、一线大厂简历


六、测试开发DevOps体系 

七、常用自动化测试工具

八、JMeter性能测试 

九、总结(尾部小惊喜)

生命不息,奋斗不止。每一份努力都不会被辜负,只要坚持不懈,终究会有回报。珍惜时间,追求梦想。不忘初心,砥砺前行。你的未来,由你掌握!

生命短暂,时间宝贵,我们无法预知未来会发生什么,但我们可以掌握当下。珍惜每一天,努力奋斗,让自己变得更加强大和优秀。坚定信念,执着追求,成功终将属于你!

只有不断地挑战自己,才能不断地超越自己。坚持追求梦想,勇敢前行,你就会发现奋斗的过程是如此美好而值得。相信自己,你一定可以做到! 

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

相关文章:

  • 在VSCode中运行Python脚本文件时如何传参
  • 用Rust刷LeetCode之66 加一
  • 2分钟带你了解什么是Vsync
  • Java爬虫攻略:应对JavaScript登录表单
  • Apache Hive(部署+SQL+FineBI构建展示)
  • Ribbon组件的负载均衡原理
  • 电脑搜不自己的手机热点,其余热点均可!
  • 采样率越高噪声越大?
  • 【redis笔记】分布式锁
  • 【Lidar】基于Python的三维点云数据转二维平面+散点图绘制
  • 2次MD5加密——用于分布式对话
  • Labelme2Yolo labelme格式的json标注转yolo格式txt
  • 【尘缘送书第五期】Java程序员:学习与使用多线程
  • 排序:直接选择排序
  • 分享几种 Java8 中通过 Stream 对列表进行去重的方法
  • $translatePartialLoader加载失败及解决方式
  • 《深入 React 技术栈》
  • Angular js 常用指令ng-if、ng-class、ng-option、ng-value、ng-click是如何使用的?
  • Bytom交易说明(账户管理模式)
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • mysql 数据库四种事务隔离级别
  • python 装饰器(一)
  • Redis的resp协议
  • Sequelize 中文文档 v4 - Getting started - 入门
  • webpack入门学习手记(二)
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 解析带emoji和链接的聊天系统消息
  • 前端 CSS : 5# 纯 CSS 实现24小时超市
  • 使用common-codec进行md5加密
  • 译有关态射的一切
  • 智能合约Solidity教程-事件和日志(一)
  • Spring Batch JSON 支持
  • 分布式关系型数据库服务 DRDS 支持显示的 Prepare 及逻辑库锁功能等多项能力 ...
  • 你学不懂C语言,是因为不懂编写C程序的7个步骤 ...
  • #每天一道面试题# 什么是MySQL的回表查询
  • (Oracle)SQL优化技巧(一):分页查询
  • (独孤九剑)--文件系统
  • (附源码)springboot课程在线考试系统 毕业设计 655127
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (原+转)Ubuntu16.04软件中心闪退及wifi消失
  • .h头文件 .lib动态链接库文件 .dll 动态链接库
  • .NET BackgroundWorker
  • .net core Swagger 过滤部分Api
  • .NET Core/Framework 创建委托以大幅度提高反射调用的性能
  • .NET/C# 项目如何优雅地设置条件编译符号?
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • .NET使用存储过程实现对数据库的增删改查
  • [2019.3.20]BZOJ4573 [Zjoi2016]大森林
  • [AMQP Connection 127.0.0.1:5672] An unexpected connection driver error occured
  • [BZOJ 4129]Haruna’s Breakfast(树上带修改莫队)
  • [c++] 单例模式 + cyberrt TimingWheel 单例分析
  • [Everyday Mathematics]20150130
  • [go] 迭代器模式