软件测试面试总结

在某电商平台购买了 5件商品,结算成功之后 查看我的订单,发现订单页面只显示了2件商品BUG 定位(前后端定位)。
这是前端问题还是后端问题?

刷新订单,查看是否缓存,或者禁用缓存 再次查看。
抓包, 抓查看订单的包。
抓到包之后进行分析:
分析请求的数据: 如果请求的数据有误 — 前端问题
如果请求参数没有问题:现在开始分析返回结果。
分析后端返回的结果:
如果返回的结果有问题, 后端的问题。
如果返回的结果也没有问题, 那就是前端的问题。
上面主要就是通过抓包来分析问题。
同时除了抓包,也可以借助
查看Linux服务器的日志(如果服务器端有日志,可以去查看),
查看数据库的表中的数据 (用户下单,最终数据库有对应的记录)。
https与http的区别?
1、HTTP协议以明文方式发送内容,不提供任何方式的数据加密。
2、HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。
3、https则是具有安全性的ssl加密传输协议。http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。并且https协议需要到ca申请证书。
4、HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,要比http协议安全。
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的身份,并为浏览器和服务器之间的通信加密。
get/post的区别?
get 比post更安全
get是像服务器请求数据
post是像服务器发送请求
get参数是在URL后,post参数是传在body里面
get得参数有限制,post没有
1、post请求更安全;post请求不会作为url的一部分,不会被缓存、保存在服务器日志、以及浏览器浏览记录中,get请求的是静态资源,则会缓存,如果是数据,则不会缓存。
2、post请求发送的数据更大,get请求有url长度限制。
3、post请求能发送更多的数据类型,get请求只能发送ASCII字符。
4、传参方式不同。
5、get产生一个TCP数据包;post产生两个。
接口面试题目:
多接口 怎么测试?
多接口主要表示业务之间有相互关联的场景。
多接口主要 考虑接口的场景。
根据业务关联,设置接口执行顺序
在上游接口 把结果提取出来,设置为变量。
具体做法: 在Postman中 Tests 使用 JS 脚本提取变量。
下游接口引用变量。
{{变量名}}
每个接口需要添加对应的断言。
根据具体的业务添加断言。

单接口 怎么测试?
主要考虑单接口的正向用例,反向用例。
单接口测试
根据需求–整理测试点–将不同的测试数据放在csv文件中
不同场景数据–对应不同的断言结果,断言结果也放在csv文件中。
在Postman中,请求参数使用变量(变量名与csv文件中变量保持一致)
Tests中添加断言,断言的预期结果从csv文件中获取。
Postman上传csv文件,批量运行,查看断言结果。

如何保证你的接口测试的完整性?
在整理接口需求文档的时候,尽可能多整理测试点,并跟开发,产品经理一起进行评审。从需求上尽可能多的考虑到这些测试点。
使用CSV数据驱动的方式,将不同测试点数据放在文件中,通过读取文件来快速执行。
对应有关联场景的接口,使用上下游传参的方式进行操作。
怎么做性能测试?
上级领导会给到我们具体的测试场景,以及对应的压测量。
我主要习惯使用 JMeter工具来压测。
在压测之前 我会先把具体的场景做到Jmeter 中
Web端压测的时候如果不是调用 现成的api,需要抓包,使用 Charles, 浏览器开发者工具抓都可以
抓包完成之后,将包导入到Jmeter中就可以直接运行了。(为了让数据更真实,我们也会使用函数助手生成一些数据)
如果是直接调用API, 使用JMeter 做下API
接口有关联,使用上下游传参
CSV也可以做参数化
添加对应的断言
文本断言
json断言
jmespath 断言
这些在JMeter中做完之后,设置线程组,添加聚合报告。开始压测
压测过程中 可以使用 htop 或者top 命令监控服务器,也可使用 netdata 监控服务器。
压完之后看 聚合报告,以及对应的服务器状态。
如果不达标,会让开发进行一些程序优化,再压。
最后出一份测试报告。

性能测试的指标主要看哪些?
主要看 聚合报告和服务器的状态
聚合报告中
响应时间
异常率
吞吐量
服务器状态
CPU
内存
磁盘IO
网络流量

如何找到系统的性能瓶颈?
公司会有一个基准值,比如100并发,并发时间5分钟
会跟据这个基准值,并发数每隔50 递增,递增的时候观察聚合报告。
比如 100并发 并发5分钟, 发送样本数为 10000个
那么 当150并发的时候, 也并发5分钟,如果系统没有达到瓶颈, 那么发送的样本数 会增加。
持续加压,一直到 样本数和吞吐量维持在一定的数据上, 观察异常率,可以对异常率设置标准。比如不超过1%,就持续加压。

你们的公司的性能指标是多少?
不同服务器配置不同,指标也不同。
比如我们的服务器配置
双核CPU,
内存16G
针对创建话题页面, 指标
1000并发,错误率不超过1%,吞吐量 500/s。

不同服务器指标不一样,不同的业务场景,指标也不一样。

JMeter中三种线程组,它们的区别是什么?
setUp线程组 所有线程组在运行之前需要的操作 放在这里执行。比如购买商品, 购买商品之前需要登录。获取token。token 是前提条件,那么就可以将token操作放在 setUp线程组中。
线程组 就是我们平时执行的操作。
teardown线程组 所有线程执行完成之后 要做一些数据清理工作。 最后执行。

JMeter 中跨线程组传参怎么做?
线程组之间通过json提取器生成的变量只能在当前线程组中使用,不能在其他线程组中使用。
我们公司的接口做的时候,一般都是放在一个线程组内。直接执行的
如果要跨线程组 传递参数,可以借助beanshell处理器,将要传递的变量先设置为 属性,再将属性设置为变量,就可以引用了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值