目录:导读
前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜)
前言
接口测试篇
1、接口测试是怎么做的? 我以下单这个接口说下吧:下单这个接口用的是http协议,使用post请求方式,发送给服务器的参数有token,产品ID,购买数量,收货人地址等等,这些参数都是必传的参数。 我们是使用Jmeter来做接口测试的,首先,要新建一个线程组,在线程组下面添加一个http的请求,然后填写好服务器地址,接口路径,请求方式,请求参数。
由于下单的接口依赖于等于,所以我们会先调用登录接口,从中获取token值,在下单接口中使用${参数名}的方式引用,接下来还要对其他参数进行参数化,构造各种正常和异常的数据,我们先在本地创建一个txt文档,把参数填写到文档里面,在Jmeter中添加一个csv文件设置,填写好txt文档的路径,然后在请求参数中使用Json提取器把token值关联出来,然后在下单接口中使用${参数名}的方式引用;
接下来添加断言,检查服务器返回的结果和预期结果是不是一致的。最后,添加查看结果树查看测试结果。
2、JMeter测试环境怎么搭建? 因为JMeter是JAVA程序开发的,所以要先安装JDK; 配置JAVA环境变量,包括:JAVA_HOME,PATH,CLASSPATH; 双击jmeter的bin目录里面的jmeter.bat文件,就可以启动Jmeter。
3、什么时候会用到使用Fiddler? 做安全测试,检测敏感信息是否加密,拦截篡改数据; 当测试时发现缺陷,用fiddler抓包,定位该问题是前端还是后台的问题; 模拟弱网环境; 统计单个功能的响应时间。
4、Fiddler怎么拦截篡改数据? 就拿下单来说吧,点击下单之前,先启动Fiddler,按F11打断点,将请求拦截下来,
然后在fiddler中,对拦截下来的请求,修改其中的数据,比如将价格或者商品数量进行修改 修改完成后,关闭拦截,继续请求的发送即可。
5、Fiddler怎么模拟弱网测试? 点击规则–>自定义规则,打开fiddler的脚本编辑器,找到simulateModem 设置上传和下载的延时速度 点击规则–>性能,选模拟带宽
6、fiddler如何模拟2g/3G的网络? 2G一般上行/下行速率约为:2.7、9.6kbs,模拟设置为:uploaded 约 2962 ms,downloaded 约 833 ms;(弱网一般指2G网络) 3G一般上行/下行速率约为:384、2560kbs,设置为:uploaded 约 2.6 ms,downloaded 约 0.39 ms;
7、Fiddler怎么抓HTTPS的包? 安装安全证书; 点击fiddler的Tools–>options–>https 勾选上所有选项,更换证书,重启fiddler
8、在进行接口的自动化测试,如果遇到token校验,怎么处理的? 首先需要获取token,获取token的整个思路为: 先进行登录 登录成功后 获取token 把获取的token当作下一个接口的请求参数
上面这个题目可以这样延伸:有一个接口A,发送给服务器的数据需要从接口B中获取,怎样对A接口进行测试?
参考答案: 在A接口前面添加接口B,在B接口中添加Json提取器,把A接口需要用到的数据关联出来,保存到参数中; 在A接口中使用${参数名}的方式进行引用。
9、Jmeter的断言怎么做? 选中需要断言的请求,右键,选择响应断言,在响应断言输入框中添加要断言的值;如果这个接口有多个请求数据,针对每个请求数据服务器返回数据都不一样的,这时候,我们就要把断言的值进行参数化,步骤是:现在本地添加一个txt文档,把参数化的值写入文档里面,然后再在jmeter选中需要断言的请求,右键,添加CSV文件设置,把刚才编辑好的txt文档添加进来,在响应断言输入框中使用${字段名}的方式来引用参数的值。
10、接口出错了怎么办? 首先,我会先检查一下请求参数啊,还有其他的填入的数据是否有问题,如果这些都没问题,我会ping一下网络,看网络通不通,如果网络也没问题的话,我会去看看系统服务器有没有启动,如果服务器也没问题的话,那可能就要发给开发定位一下了。
11、接口测试用例怎么写? 我们每个版本都会有四五个接口需求,有的是新增的接口,有的是原来的接口做了一些调整,我们会查看这些接口有哪些参数,每个参数有什么约束条件,加密方式是什么,正常和异常的响应信息有哪些,然后编写测试用例来覆盖这些需求,一个版本下来大概有五六十条接口测试用例。
12、接口有哪些参数? 比方说:下单接口,会有token,产品ID,购买数量,收货人地址,收件人电话等等;注册接口,会有手机号,密码,验证码这些参数;我们项目的接口有五六十个,每个接口实现的功能不一样,参数是不一样的。
13、接口的状态码有哪些? 接口不一样,返回的状态码也不一样,我们接口的状态码是由开发统一定义的,比如,我们xxx这个项目,修改昵称这个接口,成功修改的状态码是0,30001表示token无效,30002表示用户不存在,还有30003等一些其他的状态码,具体意思记不太清楚了。
14、能说一下第三方支付接口的流程吗? 首先用户下订单,网站后台就会生成一个支付请求发送到第三方支付平台;支付平台收到请求后会直接发送响应给用户,展示金额等,并且要求用户输入账号密码,用户输入信息直接发送到第三方平台;付款成功后第三方平台会返回支付结果给到网站后台和用户;后台收到付款成功信息后就会生成付款成功的订单信息发给用户;大概的流程就是这样。
15、Fiddler怎么抓手机app的包? 手机与fiddler所在的电脑连接到同一网络; 在fiddler设置监听端口,并允许远程终端连接; 在手机上填写代理服务器的地址和端口。
16、为什么要做接口测试 / 接口测试的目的? 尽早介入测试,早发现bug,降低修复成本 UI界面测试无法发现底层问题
17、接口的加密如何处理? 一般来说的话加密都是开发那边会给到加密的文档或者脚本给到我们,我们将参数进行加密后,然后再在Jmeter中填写。
性能测试篇
1、性能测试怎么做的? 做性能需求分析,挑选了用户使用最频繁的功能来做性能测试,比如:登陆,打开系统首页,搜索,提交订单,确定性能指标,比如:事务通过率为100%,90%的事务响应时间不超过3秒,CPU和内存的使用率为70%以下。
搭建性能测试环境,准备好性能测试数据。 使用Jmeter开发优化脚本,包括:参数化,断言,关联等。
设计性能测试场景,我们这个项目做了单用户单功能循环200次的基准测试,然后使用1500个用户,执行30分钟的负载测试,看系统有没有性能瓶颈;
我们搭建了分布式压力测试环境进行测试,每台压力机并发500个用户,并监控linux服务器的CPU,内存,IO。 分析性能测试结果,如果有性能瓶颈,收集相关的日志提单给开发修改。 开发修改好后,回归性能测试,然后输出性能测试报告。
2、如何确定系统能够承载的最大用户数? 通过负载测试,不断增加用户数,随着用户数的增加,各项性能指标也会相应产生变化,当出现了性能拐点,比如,当用户数达到某个数量级时,响应时间突然增长,那么这个拐点处对应的用户数就是系统能承载的最大用户数。
3、系统哪些地方(哪些功能)做了性能测试? 我们选用了用户使用最频繁的功能来做性能测试,比如:登陆,打开系统首页,搜索,提交订单。
4、性能测试什么时间做? 功能测试之后,系统比较稳定的时候再做。
5、怎样分析性能测试结果? 查看聚合报告和服务器的资源使用图,检查响应时间,事务成功率,CPU,内存和IO使用率是否达到要求,如果出错率达到了总请求数的3%,我们会检查是什么原因导致的,修改好后,重新测试;
如果出现了性能瓶颈,比如响应时间,或者CPU使用率不达标,我们会从服务器上导出日志,分析是哪个地方导致响应时间过长,如果分析不出来,就叫上开发一起讨论,确定问题后,就提单给开发修复,修复好了就进行回归测试。
6、如何判断网络是否存在瓶颈? 在性能测试结束之后,我们会根据性能测试的结果,查看在整个性能测试过程中,网络的吞吐量是多少,如果网络的吞吐量占到了服务器的70%以上,我们就认为网络存在瓶颈,通常会增加带宽或者压缩传输数据。
7、响应时间不达标 响应时间不达标的话,我们会根据性能测试结果先检查看下是否是服务器带宽存在问题,如果带宽存在瓶颈,则会考虑增加带宽或者压缩传输数据,如果带宽没有问题的话,我们会从服务器上导出日志,开发一起讨论分析是哪个地方导致响应时间过长,确定问题后,就提单给开发修复,修复好了就进行回归测试。
8、CPU使用率不达标 CPU使用率不达标,我们会从服务器上导出日志,分析是哪个地方导致CPU使用率不达标,如果分析不出来,就叫上开发一起讨论,确定问题后,就提单给开发修复,修复好了就进行回归测试。
9、性能测试需求哪里来的? 需求文档上有的,不过有时候不太合理,我们可能需要和BA进行讨论。比如,我之前做了一个公司内部用的OA系统的性能测试时,要求并发用户200人,我们整个公司都没有100人,很明显,做200人并发是没有必要的,后来,我们只做了50人并发。
10、有验证码的功能,怎么做性能测试? 1)、将验证码暂时屏蔽,完成性能测试后,再恢复。注意:屏蔽验证码是不会给性能测试的结果带来影响的。 2)、使用一个万能的验证码。
11、性能测试指标有哪些? 平均事务响应时间,90%的事务响应时间,TPS,CPU、内存
2024最新接口测试从入门到精通项目实战(全套接口测试教程)
下面是我整理的2025年最全的软件测试工程师学习知识架构体系图
一、Python编程入门到精通
二、接口自动化项目实战
三、Web自动化项目实战
四、App自动化项目实战
五、一线大厂简历
六、测试开发DevOps体系
七、常用自动化测试工具
八、JMeter性能测试
九、总结(尾部小惊喜)
人生如登山,每一步都是成长。无论前方多险峻,只要心怀信念,终能抵达顶峰。挫折只是暂时的风雨,坚持才是永恒的阳光。你的努力不会被辜负,今天的汗水将浇灌明天的辉煌。相信自己,你比想象中更强大!
梦想是心中的火焰,照亮前行的路。即使跌倒百次,也要第一百零一次站起。成功不在于速度,而在于永不放弃的勇气。每一份坚持都在塑造更好的你。向前跑吧,世界终将为你让路!