目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
1、接口测试的流程
接口流程1、需求分析:
项目立项后,对于整体产品的需求进行认识和理解(与功能测试的需求分析是一致的)。
接口流程2 、api文档分析【重点】该环节主要分析:请求和响应。
请求:1)请求url是否合理 2)请求信息头是否明确 3)请求方法是否合理 4)请求参数是否必填、含义、参数方式(url\form\json)
响应:1)响应状态码是否合理 2)响应数据格式是否明确 3)响应信息头内容是否明确异常:异常返回信息和错误代码业务:接口彼此之间依赖关系
该流程重点是:
1)请求参数方式和类型
2)接口之间依赖关系
3)错误异常
流程3、测试计划
由测试经理编写,目的:分配测试任务进度安排和指导测试方案执行。
核心:目的,范围,背景,准入准出,软件硬件环境,风险预测及控制。
流程4、用例设计
提示:该环节主要针对参数、测试数据、安全、依赖、异常进行覆盖。
测试用例大体分为两种:
1)根据需求进行提取测试点
2)设计用例覆盖测试点
流程5、环境搭建
流程6: 用例执行
流程7:缺陷管理
使用缺陷管理工具来对执行用例的缺陷进行管理(与功能测试缺陷管理一致)
提示:缺陷提交->修复->回归->关闭
流程8:测试报告
测试报告不同公司有不同的模板,但测试报告主题内容一般分为下列四部分:
1)测试过程
2)缺陷统计
3)缺陷分析
4)测试总结
最后总结:
总结1:接口测试需要围绕测试计划实施
总结2:接口测试重点是:api文档分析、用例设计接口api文档分析要重点查看下面两项:1)请求参数说明 如:是否必填、类型、取值范围 2)接口之间业务以来关系
总结3:具体接口应用工具主要根据后台协议和测试计划测试工具来定,可使用工具如:postman、jmeter等等
2、接口测试常问面试题
面试题1:get请求方法和post请求方法的区别?
1)get请求的请求入参是在URL地址栏里面
2)post请求的请求入参是在body里面
3)get请求一般用于查询比较多,post请求可以用来查询也可以用来提交表单
4)get请求携带的数据比较少,大概只有2KB的数据,但是post请求可以携带2GB的数据
5)post的请求的安全性要高于get请求
面试题2:怎么对接口进行断言
1)对接口返回的响应状态码进行断言
2)对接口返回的具有唯一性的message信息进行断言
3)对接口返回的动态数据进行断言(看如下的答案)
面试题3:如果接口的返回值是一个动态的,你怎么断言?
1)我一般会通过pymysql模块连接数据库,编写对应的方法在数据库查询到对应的动态数据然后赋值给一个变量,然后再把这个变量和接口的响应信息进行对比和断言
鉴权的方式
1)cookie+session ==》一般web端会用,APP不会用
2)token鉴权 ==》web端和APP端都会用
3)密钥鉴权,api_key (MD5+AES+RSA加密)
面试题4:接口抓包工具的原理?
抓包工具有哪些? ==》谷歌浏览器F12开发者调试模式,fiddler,Charles,wireshark(TCP和UDP协议等等用wireshark)
1)fiddler作为一个抓包工具,作为一个代理服务器,代理的是本地,端口是8888,客户端发送请求给到服务器,fiddler可以通过打请求前断点,修改请求入参然后放行资源,等到服务器处理完返回后,fiddler可以通过打响应后断点,修改响应后的数据并且放行资源。
2)请求前断点 ==》fiddler左下角有个黑色的输入框输入bpu + URL地址
3)响应后断点 ==》bpafter + URL地址
面试题:你用fiddler来干嘛?
1)抓包,定位前后端bug
2)打断点,进行接口测试
面试题5:接口怎么设计测试用例?【超级重点】
1)接口的入参长度限制,必填和非必填,参数的类型校验
2)根据接口的不同的返回值构建不同的入参,来对场景进行覆盖
3)关联接口之间的逻辑校验
4)要关注如果Redis里面有数据就从Redis缓存数据库里面去拿,如果没有先从mysql数据库里面拿到之后再同步到Redis数据库里面
5)是否支持不同的接口请求方法比如get或者post去请求
6)用失效的token,错误的token去测试
7)还要关注接口的幂等性 ==》比如有一个转账的功能,1秒钟点击转账按钮10次预期结果是只能转账成功一次
面试题6:你们1个接口可以写多少条自动化测试用例?
1)我们之前1个接口主要是看接口的复杂程度,如果入参和出参1个接口写个10多条自动化用例,参数少的也有写2-3条用例的
面试题:你认为接口测试和功能测试的区别在哪里?接口测试和接口自动化测试的区别?
1)接口测试更加关注的是前后端的交互和接口之间的逻辑,比如通过调用接口是否可以把数据库里面的数据返回给到前端
2)功能测试更加关注页面功能的实现
3)接口测试只是做了正常和异常的校验,但是我们每个版本的接口如果都通过接口功能测试去测的话工作量太大了,所以通过把接口串联起来写成接口自动化测试脚本,在回归测试阶段运行,有利于提高我们的工作效率和节省时间。
你测过多少个接口?
1)1个版本迭代差不多会新增10个接口左右
2)项目做了1年半=18个月1个月一个迭代10个接口 = 180个接口
总共有多少条接口自动化用例:180*5条 = 800-1000多条
每次运行时间要多久?
1000*1秒= 1000秒 = 7-8分钟差不多就跑完
你们自动化和功能测试的占比是怎样的?
功能测试占比70%左右,自动化和性能测试占比差不多30%左右
面试题:那你们平时是什么时间段去写自动化测试用例的呢?
当前版本的sit系统集成阶段后会写对应的自动化测试用例,然后放在下个版本去运行
完整版!企业级性能测试实战,速通Jmeter性能测试到分布式集群压测教程
| 下面是我整理的2025年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
人生最珍贵的不是终点站的掌声,而是追梦路上的每一个脚印。当你觉得疲惫时,请记住:钻石经过打磨才能璀璨,雄鹰经历断羽才能高飞。你的坚持,正在书写属于自己的传奇篇章!
别让任何人定义你的极限!你拥有的不是天花板,而是等待突破的起点。那些看似不可能的梦想,终将在你日复一日的坚持中变得触手可及。你,就是自己人生的造梦者!