蔚来测试开发

1️⃣一面-技术面

  • 项目里用了redis,具体用途

中间件缓存 高效数据库存取、应用响应

使用场景:数据缓存(用户信息、页面数据)、页面缓存

  • 对maven了解什么,哪些命令

初始化项目:通过 mvn archetype:generate 创建新的 Maven 项目,选择合适的模板(archetype)来初始化项目。

构建项目:使用 mvn clean install 来构建项目,将所有依赖下载并安装到本地仓库。

管理依赖:在 pom.xml 中声明项目依赖,Maven 会自动下载和管理它们。

发布和部署:使用 mvn deploy 将构建的产物发布到远程仓库。

  • 对测试了解什么

测试目的、测试方法、测试流程、测试分类、问题定位、问题追踪、测试工具

  • 单元测试 集成测试 冒烟测试的区别,具体用于什么
  • 算法题:给定target、数组,找数组里有没有两数相加等于target

遍历->hashmap记录var-to-key->need=target-nums[i]->查字典

  • 针对写好的算法,设计测试用例
  • 在 WF项目中,发现导出的视频音画不同步 是怎么回事
  • 音频/视频解码时延迟

问题:视频和音频的解码处理可能存在不同的延迟,特别是当视频文件包含高分辨率或长时间视频时,解码处理的延迟可能导致视频帧和音频帧不同步。

解决方法:可以在导出时调整音频和视频的缓冲区大小或延迟时间,确保它们同步解码

  • 遇到过哪些挑战或难题?如何解决的?

在 WF 项目中,我们曾经遇到过一个性能瓶颈问题:平台在高并发情况下,视频处理模块的响应时间大幅上升,影响了用户体验。

    性能分析:我们使用 JMeter 和 Prometheus 进行了压力测试,并监控了数据库和应用服务器的资源使用情况。发现数据库查询和文件存储是瓶颈的关键所在。

    优化数据库:通过分析慢查询日志,我们对数据库查询进行了优化,添加了索引并重构了部分查询逻辑。

    缓存优化:针对频繁查询的数据,我们引入了 Redis 缓存,将热点数据存储在 Redis 中,减少数据库的访问频率。

    分布式部署:我们增加了应用服务器的实例,并使用负载均衡来分摊请求负载,提升了整体的系统吞吐量。

2️⃣二面-技术面

  • 数组和链表区别
  • git用过哪些命令
  1. git add .:添加所有更改到暂存区。
  2. git commit -m "commit message":提交暂存区中的更改并附带提交信息。
  3. git   push origin main:将本地分支的更改推送到远程仓库。
  4. git pull origin main:从远程仓库拉取最新的代码到本地分支。
  5. git clone [url]:克隆远程仓库到本地目录。
  6. git :查看仓库的当前状态,显示哪些文件被修改但尚未添加到暂存区,以及哪些文件已经在暂存区准备提交。

文件操作

1.git diff:比较工作区和暂存区的差异。

2.git log:查看提交日志。

3.git show [commit]:显示指定提交的详细信息。

撤销与恢复

  1. git reset [commit]:回退版本,移动HEAD指针到指定的提交。
  2. git revert [commit]:撤销之前的提交,创建一个新的提交来撤销之前的更改。
  3. git restore [file]:恢复或撤销文件的更改。
  4. 其他常用命令git stash:临时保存工作区的更改,以便稍后恢复。
  5. git stash pop:恢复最近一次保存的工作区更改。
  6. git  -v:查看远程仓库的详细信息。
  7. git fetch []:从远程仓库获取最新的提交,但不会自动合并到本地分支。

分支操作

git branch:列出所有本地分支。

git checkout -b [branch]:创建并切换到新的分支。

git checkout [branch]:切换到指定的分支

git merge [branch]:将指定分支合并到当前分支

  • 给你一个搜索框,怎么测试,设计测试用例

功能:ui界面 文字输入显示是否文字溢出 提示界面 点击查询调转

性能:弱网 响应 资源占用

兼容:浏览器 设备(移动端、pc)

安全:SQL注入测试 跨站脚本攻击XSS

  • 会前端吗,vue生命周期

生命周期指的是从创建一个 Vue 实例开始,到它被销毁的整个过程。每个 Vue 实例都有一系列的生命周期钩子函数,这些钩子函数可以让我们在 Vue 实例的不同阶段执行自定义的代码。

Vue 实例的生命周期大致可以分为 四个阶段

  1. 创建阶段:Vue 实例被初始化,数据和事件监听器设置,模板编译。
  2. 挂载阶段:将模板渲染为真实的 DOM,并将其插入到页面中。
  3. 更新阶段:当数据变化时,Vue 会重新渲染视图。
  4. 销毁阶段:销毁 Vue 实例,清理事件监听器,销毁组件实例。

创建阶段 1.beforeCreate:实例初始化之后,数据观测和事件/生命周期钩子设置之前被调用。此时,数据、事件、计算属性、方法等尚未设置。

应用场景:通常不用于开发中,除非需要了解 Vue 实例创建过程的最早阶段。

created:实例已经创建,数据和事件已经初始化,data、computed、methods 和事件监听器都已经设置完毕,DOM 尚未挂载。

应用场景:可以在此阶段执行一些初始化操作,如异步请求数据、定时器设置等。

挂载阶段

beforeMount:挂载开始之前被调用,相关的 render 函数首次被调用。

应用场景:在这里你可以进行一些即将挂载的准备工作,但通常不会做太多操作。

mounted:Vue 实例挂载到 DOM 后被调用。此时,组件的 DOM 已经被渲染完成,可以访问 DOM 元素。

应用场景:可以在此执行一些依赖 DOM 的操作,例如获取 DOM 元素的尺寸,或者进行一些外部库的初始化等。

更新阶段beforeUpdate:当数据更新时,视图更新前被调用。此时可以访问到更新前的数据和 DOM。

应用场景:通常不需要手动操作,除非需要在数据更新前执行某些清理工作或优化操作。

updated:当数据更新后,视图更新完成时调用。此时,组件的 DOM 已经更新,您可以对 DOM 做进一步的操作。

应用场景:用于操作更新后的 DOM,或进行一些需要重新计算的操作。

销毁阶段

beforeDestroy:组件销毁前调用。此时,实例仍然有效,可以执行一些销毁前的清理工作。

应用场景:可以用于清除定时器、取消网络请求,或者移除全局事件监听器等。

destroyed:组件销毁后调用。此时,组件实例已经被销毁,所有的监听器、子组件、事件等都已被清除。

应用场景:通常用于做一些最后的清理工作。

  • 算法题:口述判断()字符合法性
全部评论
谁问你了....
点赞 回复 分享
发布于 02-25 19:20 江苏
春招吗?
点赞 回复 分享
发布于 02-21 15:50 广西

相关推荐

04-29 16:31
已编辑
门头沟学院 C++
坚定的芭乐反对画饼_许愿Offer版:没事 压力面很多时候是看你面对压力的反应 说不定最后过了还能带来惊喜呢
查看8道真题和解析 面试中的破防瞬间
点赞 评论 收藏
分享
评论
4
32
分享

创作者周榜

更多
牛客网
牛客企业服务