目录:导读
- 前言
- 一、Python编程入门到精通
- 二、接口自动化项目实战
- 三、Web自动化项目实战
- 四、App自动化项目实战
- 五、一线大厂简历
- 六、测试开发DevOps体系
- 七、常用自动化测试工具
- 八、JMeter性能测试
- 九、总结(尾部小惊喜)
前言
1、结合项目讲解项目中实战接口操作(postman和jmeter挑一个)
postman版本答案一:
我用的postman工具做的 接口测试的过程:首先我会问开发拿到接口文档,编写对应的接口测试用例,然后把对应的url地址,data信息,headers都放入到postman里面。
然后设置断言,然后发送接口的请求,看一下接口是否断言成功,对于一些关联接口的测试,我会首先把登录接口调通,然后拿到登录接口返回的token值,通过在后置处理器tests里面把token设置为环境变量,然后在下一个接口的请求头里面通过{{token}} 俩个大括号进行引用。
达到关联接口的测试,如果是有参数化的接口测试,我首先会在本地创建一个CSV文件然后造对应的测试数据,在postman左侧栏有一个run点击一下,然后选择本地对应的CSV文件,然后批量运行接口,看一下接口是否运行成功和是否断言成功,完成参数化接口的测试。
postman版本答案二:
我用的postman工具做的,如果有接口文档,我会问开发拿到接口文档,如果没有的话我会自己用fiddler抓包,编写对应的接口测试用例,然后把对应的url地址,还有入参都放入到postman里面。
然后设置断言,然后发送接口的请求,看一下接口是否调通并且断言成功,对于一些关联接口的测试,我会首先把上一个接口调通,然后拿到上一个接口的返回值,通过在tests里面把拿到的值,设置为环境变量,然后在下一个接口的请求头里面通过俩个大括号进行引用。
达到关联接口的测试,如果要批量运行接口的话,我会在左侧栏集合里面点击运行,然后设置迭代次数和选择参数化文件进行运行,达到批量运行的目的。
jmeter版本:
首先我会问开发同事拿到接口文档并且设计对应的测试用例,然后打开jmeter,创建一个测试计划和线程组,添加http请求,把对应的URL地址,入参和端口都填写进去,然后添加断言和断言结果,添加察看结果树,发送请求。
如果是对于关联接口的话我首先会把登录接口调通然后设置一个jsonpath提取器或者正则表达式提取器,拿到登录接口返回的token值,并且在http信息头管理器里面通过${token}进行引用,完成关联接口的测试。
对于需要做参数化的接口,首先我会在本地准备csv文件,然后在jmeter里面添加csv data set config,然后把本地的csv文件加载进来,点击运行,查看接口通过的情况。
2、接口抓包工具的原理?介绍当前常见的接口测试工具,接口设计测试用例应该从哪些方面去考虑?你们1个接口可以写多少条自动化测试用例?你测过多少个接口?总共有多少条接口自动化用例,每次运行时间要多久? 你们自动化和功能测试的占比是怎样的?
1)常见的抓包工具:
fiddler、Charles、wrieshark(TCP/UDP)、浏览器F12开发者调试模式
2)抓包工具的原理:
fiddler作为一个代理服务器,代理的是本地,端口号8888,客户端发送请求给到服务端,fiddler可以打请求前断点进行拦截,修改请求的数据,然后发送给到服务端,服务端接收到数据进行处理并响应,然后fiddler可以打响应后断点,修改响应后的数据,再把响应后的数据返回给到客户端
打断点:
① 全局断点
② 单个断点
请求前断点 ==》bpu + 接口路径 ==》取消断点:bpu
响应前断点 ==》bpafter +接口路径 ==》取消断点:bpafter
【面试题】你主要用fiddler来做什么?
答:用来抓包、打断点–》那你还能用来做什么?–》还可以进行mock测试,弱网测试
–》为什么要打断点?–》通过断点修改请求参数和响应的内容来对接口进行正常场景和异常场景的测试
3)常见的接口测试工具
postman、jmeter、swagger(存接口)、apifox、apipost
Apifox = Postman + Swagger + Mock + JMeter
Apipost = Postman + Swagger + Mock + Jmeter
apifox、apipost ==》团队协作更为鉴权
Postman ==》不登录也是可以使用的
apifox ==》必须要扫码登录
4)接口设计测试用例应该从哪些方面去考虑【超级重点】
① 首先我会考虑接口入参的必填和选填,参数的长度校验和类型校验
② 不同的请求方法,比如把post换成get请求
③ 不同的请求的内容类型,比如表单键值对换成json字符串
④ 还会根据接口不同的返回值去设计不同的入参来进行覆盖
⑤ 还会考虑接口之间的逻辑关系,比如关联接口等等
⑥ 用户无效的token或者错误的token进行鉴权
⑦ 还有需要考虑接口的幂等性
⑧ 还会考虑接口查询数据的性能表现==》会不会有慢SQL等等的问题
5)你们1个接口可以写多少条自动化测试用例?你测过多少个接口?总共有多少条接口自动化用例,每次运行时间要多久? 你们自动化和功能测试的占比是怎样的?
1个接口大概写8-10条自动化测试用例
之前项目组测了大概有100多个接口–》100个接口8-10条=800-1000条用例–》接口自动化测试用例写了大概了1000多条–》10000.5秒每条=8-9分钟
自动化和功能测试的占比–》功能和业务占到60-70%,UI和接口自动化以及性能占30%左右
3、对于接口幂等性你是怎么测试的?
幂等性的概念:接口幂等性就是用户对同一个接口发起一次或多次请求的结果是一致的,不会因为多次请求而产生不同的结果
查:是有天然幂等,不需要再做额外的幂等
删:也是有天然幂等的
更新操作–》数据库锁
1)数据库悲观锁–》指的就是每次操作的时候,先把记录锁定起来,其他人无法操作这条记录
2)数据库乐观锁–》就是很乐观,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号机制。
新增操作==》唯一索引
前端:如防止表单重复提交,按钮置灰、隐藏、按钮不可点击等方式
后端:唯一索引
【面试题】你对接口幂等性是怎么测试的【重点】
答:我会在jmeter里面去组建接口,并且设置比如50个并发线程数,加入同步定时器(集合点)同时去对接口发起请求,如果只有一个接口能请求的通,其他的49次请求都是失败的,就说明接口是做了幂等性校验的
4、你给后端接口做幂等性校验,那这个key(唯一索引)加在哪个字段上面?
电商项目:唯一索引加在订单号上面
银行贷款项目:贷款申请号,借据号上面
保险项目:保单号上面
5、在测试过程当中有没有出现过资损的情况?怎么防止资损或者资损这块怎么测
1)没有出现过资损的情况
2)防止资损的技术手段:数据库不用float等数据类型,用bigdecimal 或 decimal等数据类型 ==》比如3333.33 变成了3333.333333333333333333
==》有些除不尽的数据,比如10000分3期,第一期3333.33,第二期3333.33,第三期3333.34
==》通过对账对金额和资损进行测试
6、mock和沙箱环境是什么意思
1)mock测试:
① 后端接口功能还没有实现好,但是有需要用到这个还没有开发完成的接口,就可以通过模拟接口的返回值,先进行mock数据测试;
② 测试一下第三方接口的时候,可以通过mock测试达到测试的目的
7、第三方接口是怎么测试的
1)如果对方有沙箱环境我们就使用第三方的沙箱环境进行测试
2)如果没有,我们可以通过mock进行第三方接口的测试
最全Python自动化测试进阶之路视频教学 (全集)
下面是我整理的2025年最全的软件测试工程师学习知识架构体系图 |
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
人生最耀眼的不是站在领奖台的瞬间,而是黑暗中依然前行的勇气。当你觉得疲惫不堪时,请记住:每个伟大的转折都藏在"再坚持一下"的决定里。你的脚步,正在丈量属于自己的传奇!
别被眼前的迷雾困住脚步!那些看似徒劳的努力,都在为惊喜的绽放积蓄力量。当世界说"到此为止"时,你的坚持就是最响亮的回答。向前奔跑吧,生命的精彩正在下一站等你!