常见面试题整理

目录

目录

Java相关

python相关

自动化相关

性能相关

DB相关

中间件相关

网络请求相关

Linux命令相关

问题排查相关

项目管理相关

业务项目相关

算法相关


Java相关

1、list、set、map的区别?

  • list 的特点是元素有序,元素可重复,list接口的主要实现类有ArrayList和LinkedList,list可以动态增长,查找元素的效率较高
  • set 的特点是元素无序,且不可重复,主要实现类有HashSet和TreeSet,删除和插入的效率比较高
  • map的特点是存储的键值对,主要实现类有HashMap和TreeMap

2、String 类能不能继承?

  • 不能被继承,因为java对String类的定义中有final修饰符,而final修饰的类是不能被继承的

3、什么样的类不能被继承?

  • 在java中只要是被定义为final的类,也可以说是被final修饰的类,就不能被继承
  • final是Java中的一个关键字,可以用来修饰变量、方法和类,用final修饰的变量一旦被赋值就不能改变,称为常量

4、抽象类和接口的区别?

5、IO流

6、进程、线程


python相关

1、python的垃圾回收

2、如何查看路径下文件并打印出文件名?

3、自动化中常用到的第三方库?

  • pytest、airtest、request、pyyaml、pymysql、pytest-ordering、pytest-rerunfailures

4、hook函数

5、进程、线程

6、是否写过装饰器?


自动化相关

1、selenium的driver.close,quit的区别?

  • driver.close() 关闭当前窗口
  • driver.quit() 关闭所有窗口

2、自动化的价值是什么,或者做到什么程度才能体现价值?


性能相关

1、性能测试中什么场景会造成cpu使用率低但负载很高?

  • 场景一:磁盘读写请求过多就会导致大量I/O等待,即等待磁盘I/O完成的进程过多,导致进程队列长度过大,但是cpu运行的进程却很少,这样就导致了负载过大,但cpu使用率低
  • 场景二:MySQL中存在没有索引的语句或存在死锁等情况

2、性能测试中关注哪些指标?

  • 如果对性能指标了解较浅,建议回答工作中切实关注的指标,如:tps、平均响应时间、cpu、错误率等

3、如何评估性能指标?

  • 业务提供预估业务数据,如:pv、uv等
  • 根据具体业务场景,根据28原则进行指标计算评估

DB相关

1、数据库慢查询优化方法?

  • 恰当使用索引
  • 表数据结构优化(将字多很多的表进行拆分、增加中间表、适当的字段冗余)
  • 分解关联查询(将一个大的擦好像分解为多个小查询)
  • 优化limit分页

2、mysql的搜索引擎?


中间件相关

1、常见的mq类型,及其特点

  • RocketMq:能够保证严格的消息顺序、提供丰富的消息拉取模式、强大的消息堆积能力、提供针对消息的过滤功能、高效的订阅者水平扩展能力、实时的消息订阅机制
  • Kafka:快速持久化、高堆积、高吞吐

2、mq有什么优点,举例说明在真实业务中的应用

  • 优点:解耦、异步、削峰;业务中应用:交易支付发mq消息,不同业务方监听支付消息,做对应的业务逻辑处理
  • 具体业务中应用:支付成功发mq消息,各业务方监听消息进行各自业务逻辑处理

3、怎么保证不重复消费mq消息?

  • 业务方可以通过状态机管理,准备第三方存储做mq消费记录

4、redis的数据类型?

  • 字符 string、列表 list、哈希 hash、无序集合 set、有序集合 zset

5、redis与mysql的区别

  • mysql是关系型数据库,主要用于存放持久化数据,将数据存储在硬盘中,读取速度比较慢
  • redis是非关系型数据库,也是缓存数据库,即将数据存储在缓存中,读取速度快,可以提高允许效率,但是缓存时间有限

6、业务中用到的中间件?(简单介绍真实用到的中间件,以及应用场景)

  • roma:是一个提供MySQL binlog消息订阅和消费的一个中间件
  • rocketmq:消息中间件
  • Hawaii:定时任务
  • tair/redis:缓存相关
  • eagle:数据配置

网络请求相关

1、http接口的请求方式有哪些?

  • get:向特定的资源发出请求
  • post:向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改
  • put:向指定资源位置上传其最新内容
  • delete:请求服务器删除Request-URL所标识的资源
  • option:返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性

2、get/post接口的区别?

  • 可见性:get请求参数可见,post请求参数在请求正文内
  • 安全性:get请求安全性较差,数据是url上的一部分,post更安全,因为参数不会被保存在浏览器历史货web服务器日志中
  • 对数据长度的限制:get有长度限制,url最大长度是2048个字符,post没有限制
  • 对数据类型的限制:get只允许ASCII字符,post没有限制,也允许二进制数据
  • 标签:get可以被收藏为标签,post请求不能被收藏

3、http接口的请求流程?

  • request和response,但是他们的流程都是相同的,一个请求一个接收

4、http请求响应步骤?

  • 客户端连接到Web服务器-> 发送Http请求-> 服务器接受请求并返回HTTP响应-> 释放连接TCP连接-> 客户端浏览器解析HTML内容

5、localStorage和sessionStorage的区别? 

  • 相同点:都是window对象提供的全局属性,用途都是在浏览器中存储key/value格式的数据
  • 不同点:1、从使用的角度看,两者唯一区别在于时效性;2、sessionStorage在关闭窗口或标签页之后会删除数据,localStorage如果不手动删除,则数据一直存在

6、cookie、session、token的区别?

参考文档:https://www.cnblogs.com/moyand/p/9047978.html

7、http接口的状态码,并简述

  • 200 OK  当您的操作将在响应正文中返回数据时,出现此结果。
  • 204 No Content 当您的操作成功,但不在响应正文中返回数据时,出现此结果。
  • 304 Not Modified(重定向)  当测试实体自上次检索以来是否被修改时,出现此结果。
  • 403 Forbidden   客户端错误
  • 401 Unauthorized 客户端错误
  • 413 Payload Too Large(客户端错误) 当请求长度过长时,出现此结果。
  • 400 BadRequest(客户端错误) 当参数无效时,出现此结果。
  • 404 Not Found(客户端错误) 当资源不存在时,出现此结果。
  • 405 Method Not Allowed(客户端错误)由于方法和资源组合不正确而出现此错误。 例如,您不能对一个实体集合使用 DELETE 或 PATCH。
  • 412 Precondition Failed  客户端错误
  • 501 Not Implemented(服务器错误) 当未实施某个请求的操作时,出现此结果。
  • 503 Service Unavailable(服务器错误) 当 Web API 服务不可用时,出现此结果。

8、http与https的区别,https为什么会引入cookie?(b站)

7、怎么防止cookie被盗?(b站)


Linux命令相关

1、如何查看端口号?

  • 如果需要知道2809号端口的情况的话,命令如下: netstat -pan | grep 2809(端口号)

2、如何快速查找指定进程?

  • 通过进程id查找程序:ps -aux | grep id(进程id)

3、常用Linux命令


问题排查相关

1、线上出现白屏,排查思路是什么?

2、线上出现问题,同步给开发测试,怎么定位和解决问题?


项目管理相关

1、介绍公司产研流程,测试分别参与哪些阶段,在各阶段测试的职责和侧重点?


业务项目相关

1、有一个写DB的接口,如何设计接口测试case

  • 业务层面:是否覆盖业务所需要的数据,非正常业务数据是否有处理
  • 入参层面:是否有判空处理,入参类型、null、必传等处理
  • 出参层面:出参字段、错误码等正确性、完整性
  • DB 层面: DB字段定义长度,过长如何处理等

2、如果要你测试微信消息列表,怎么设计测试场景(不局限于功能测试)(pdd)

  • 从功能、兼容性、易用性、性能、安全等角度进行结构化场景设计,不要简单做case累加

算法相关

1、返回字符串数组内最长公共前缀,如:{"flower", "flow", "flight"},则返回"fl"(pdd)

  • 力扣算法,可以自行百度
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值