接口测试 接口自动化 python+pytest+requests

xxxaaazcc · 2022年09月08日 · 最后由 xxxaaazcc 回复于 2022年09月27日 · 11750 次阅读

前言

学习自动化是从今年开始的吧,思虑再三想从需求出发,目前落地带来效益比较好的应该就是接口方面了(中小型公司),然后写这个脚本断断续续也是用了半年时间,算是有时间就回去学一点写一点那种,然后在公司最近一个版本迭代中使用上了。算是一个小里程碑吧,想把目前位置落地的东西总结出来,收集意见(主要是没人交流,感觉一直都是自己在乱搞)😳

项目结构

具体说下目前我的相关工作流程(做了一点调整后的)

确认需求→编写测试用例→以测试用例为基础编写对应接口用例→编写自动化脚本→接口联调阶段进入接口测试→功能测试。目前脚本运行基本都是手动执行运行,后面会慢慢考虑集成 ekens

接口用例设计方面以及仔细说下项目代码

接口用例的设计:因为目前自己刚刚起步,也是属于一个尝试阶段吧,写的基本都是主要流程正常场景用例,没有覆盖一些异常参数情况,例如最查询接口 page,row 这种。我觉得这是一个阶段问题吧做的是目前优先级比较高的东西,以后想办法补进

相关的断言部分:目前自己做的接口的断言大都是以数据库为基础断言,例如新增一个客户,我会拿新增传入的参数与数据库写入的参数做对比,对应参数对应相同,数据成功写入,判断为这个接口正确。然后如果是列表搜索筛选方面的话会断言每个查询结果去断言

仔细说下代码实现部分
基类内容封装,来给具体业务接口继承



其实目前大部分都断言都是基于数据库断言一部一部往后面推的,新增数据写入正确了,那么查询的时候就以数据库数据为正确基准

目前对未来的想法以及规划

学习原则方面:自己对于学的一些东西都是以用起来为原则吧,这样感觉自己才能有一点动力,比方目前学习过程中遇到的 mock 技术和 docker 技术目前感觉没有直接使用场景所以目前都搁置下来了 以后慢慢学。然后还有一个方面就是应付面试方面,自己会经常看面试题尝试在工作中多多接触实际使用相关方面的东西(总的要生活的😃

未来学习方向:打算在今年接触学习一门 ui 自动化的相关知识并且落地,目前暂定是的 appuim 相关知识(😳 ),然后性能方面的东西目前因为公司没有相关需求,学习了 jmeter 的基本使用和一些基本的性能指标还有基本的压测,负载测试。等自动化和性能方向都掌握的我觉得还行的时候在考虑去学习一些测开的知识把,目前的方向是这样的

说一下自己学习方面的感悟:感觉挺困难的,学习资料方面只能从类似的培训机构去买大众基本没有免费完善的自动化资料教程,交流方面缺少交流也渴望交流吧。希望大佬多多指点一下,真的渴望学习(手动捂脸)

共收到 26 条回复 时间 点赞
2楼 已删除

可以看下你的接口用列文档吗,好奇是怎么维护的

cs 回复

看具体用例,一般的查询接口正常查询数据都是固定的,类似新增有重复判定的在调用接口之前都会重新赋一个随机的值

迷龙 回复

谢谢😂

仅楼主可见
cs 回复

一个接口对个用例 每个用例是一套数据

xxxaaazcc 回复

参数依赖是怎么解决的
下一个接口的入参依赖上一个接口的响应
是写死在代码里的吗

Seven 回复

实时生成获取

可以学习一下 seldom

xxxaaazcc 回复

没懂,怎么个实时法

Seven 回复

例如我要测一个单据入库接口 需要传入一个单据的 id 在测试单据入库用例时候 会有前置生成单据 用生成单据信息去下个接口用

楼主,你都是买的资料吗?能推荐下吗

xxxaaazcc · #15 · 2022年09月09日 Author
仅楼主可见
仅楼主可见
17楼 已删除
18楼 已删除
Better 回复

这个建议私聊,wx 在个人信息

☺ 麻烦老哥加我一下私聊,个人信息有 wx

Seven 回复

应该是使用 setatter() 和 getatter() 进行存储和获取吧

为啥不用 metersphere 呢?真的很方便还好集成。

阿根 回复

没了解过这个 我去研究下

作为多年做自动化测试的老兵,给你点儿建议:1,先吃透一下做自动化测试目的,常规的使用场景;2,多看一下优秀的开源项目,学习一下架构设计;3,所有自动化测试的维护成本都很高,任何项目架构设计必须易于维护;4,要想真正发挥使用,执行时间,性能方面必须要考虑。然后再对照着你的项目看一下吧?!

爱偷懒的QA 回复

收到👌 目前很多东西都是一个雏形阶段,后面还需要大量的努力和完善

厉害

爱偷懒的QA 回复

您好,请问优秀的开源项目有推荐的么?

赞一下,不过我感觉这样的会麻烦很多, 不如把协议,请求头一些通用的封装一下,然后 main 写一个公用方法去调用接口测试数据去请求呢?

姜衍 回复

协议和 host 都是全局变量放在配置文件,请求头的是方法属性,实例创建时候放入

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册