七牛云测开实习一面凉经整理

七牛云测开实习一面凉经_牛客网

23.8月可能 七牛云测开实习一面凉经

1. 自我介绍

2. 为什么想做测试

3. 实习经历

4. HashMap底层实现(1.7和1.8的区别)

Java 大厂面试 —— 常见集合篇 List HashMap 红黑树_java list是连续内存吗-CSDN博客

七牛云测开实习一面凉经整理_第1张图片

5. 创建线程的方式

23Java面试专题 八股文面试全套真题(含大厂高频面试真题)多线程_linux系统编程多线程编程网络io编程八股文面经-CSDN博客

继承Thread类、实现runnable接口、实现Callable接口、线程池创建线程(项目中常用)

6. 讲一讲消息队列

RabbitMQ入门到实战教程,MQ消息中间件,消息队列实战_rabbittemplate 获取消息-CSDN博客

7. 并发流程 怎样确保同一份数据不被重复消费 如何保证一个订单只会被分配给一个人

RabbitMQ高级篇 发送者、MQ、消费者的可靠性_mq发送者-CSDN博客

8. 分析慢SQL 优化SQL

23Java面试专题 八股文面试全套真题(含大厂高频面试真题)Redis、数据库、spring、集合、树_java23年八股文-CSDN博客

9. 两张表 学生表 专业表 查询一个专业对应多少学生个数

SELECT majors.专业名称, COUNT(students.学生ID) AS 学生个数
FROM students
JOIN majors ON students.专业ID = majors.专业ID
WHERE majors.专业名称 = '某个专业名称'
GROUP BY majors.专业名称;

10. Linux程序如何隐式启动

    1. 启动脚本(init.d 或 systemd):可以创建一个启动脚本并将其放置在 /etc/init.d//etc/systemd/system/ 目录中。这样,系统启动时会自动运行该脚本,并隐式启动相应的程序。
    2. cron 作业:可以使用 crontab 创建一个定时作业,指定程序在特定时间或间隔内运行。使用 crontab -e 命令编辑 crontab 文件,并添加适当的命令来启动程序。
    3. 用户登录脚本:可以将程序的启动命令添加到用户的登录脚本(如 .bashrc)中。这样,在用户登录时会自动执行该脚本,并隐式启动程序。
    4. 进程守护(daemon):可以将程序设计为守护进程,守护进程会在系统启动时自动运行,并在后台持续运行。你可以使用编程语言(如C/C++)创建一个守护进程程序,或者使用现有的守护进程管理工具(如 supervisord)。
    5. 自定义服务单元:对于使用 systemd 的系统,可以创建一个自定义的服务单元文件(.service),并将其放置在 /etc/systemd/system/ 目录中。然后使用 systemctl 命令启动、停止或管理该服务。

11. Linux查看系统资源使用情况

Linux系统可以使用多种命令来查看系统资源的使用情况,以下是几个常用的命令:

    • top 命令:实时显示系统的进程信息和资源占用情况。
    • ps 命令:列出系统中运行的进程信息。
    • free 命令:显示系统内存的使用情况。
    • df 命令:显示磁盘的使用情况。
    • iostat 命令:显示磁盘、CPU以及其他设备的输入/输出情况。

12. Linux移动文件夹操作指令,如何查看error错误

在Linux中,可以使用 mv 命令来移动文件夹。该命令的语法如下:

mv [OPTION]... [-T] SOURCE DEST
mv [OPTION]... SOURCE... DIRECTORY

其中,SOURCE 表示要被移动的文件或文件夹,DESTDIRECTORY 表示目标位置。如果目标位置已经存在同名文件或文件夹,那么会覆盖该文件或文件夹。

要查看错误日志,可以使用以下命令来查看最近的错误信息:

dmesg | tail

13. Selenium常用定位元素的方法,嵌套的如何定位

    • 根据ID定位:使用 find_element_by_id() 方法,例如 driver.find_element_by_id("username")
    • 根据name属性定位:使用 find_element_by_name() 方法。
    • 根据class名称定位:使用 find_element_by_class_name() 方法。
    • 根据标签名定位:使用 find_element_by_tag_name() 方法。
    • 根据链接文字定位:使用 find_element_by_link_text() 方法。
    • 根据部分链接文字定位:使用 find_element_by_partial_link_text() 方法。
    • 根据XPath 定位:使用 find_element_by_xpath() 方法。
    • 根据CSS选择器定位:使用 find_element_by_css_selector() 方法。

对于嵌套的元素,可以使用相对定位或绝对定位来找到该元素。相对定位是根据父元素或兄弟元素来定位子元素;绝对定位则是根据页面的整体结构来定位元素。

14. 使用Junit主要用来做什么

JUnit是Java中的一个单元测试框架,它可以帮助开发者编写和运行测试用例,并生成测试报告。JUnit主要用来检测单元测试是否通过或失败,以确保代码的正确性。

JUnit提供了一些注解(Annotation)和断言(Assertion)等工具,使得编写和运行测试用例变得非常方便。开发者可以通过JUnit来测试Java类、方法、代码片段等,以确保它们的功能和预期结果是正确的。

15. 如果要使用fiddler抓包的话 在手机端怎么实现

要在手机上使用 Fiddler 抓包,需要先将手机设置为使用 Fiddler 代理。具体步骤如下:

    1. 在 PC 上安装 Fiddler,并启动 Fiddler。
    2. 手机连接到与 PC 相同的 Wi-Fi 网络。
    3. 手机设置代理:在 Android 手机中,打开 Wi-Fi 设置,长按要连接的 Wi-Fi 网络,选择“修改网络”,然后选择“高级选项”,找到“代理”选项,将其设置为“手动”模式,输入 PC 的 IP 地址和 Fiddler 的监听端口(默认为8888)。
    4. 在手机上打开浏览器或应用程序,访问网站或进行网络操作。
    5. 在 Fiddler 的会话列表中,可以看到手机发送和接收的网络请求和响应,从而进行分析和调试。

16. 讲解项目

17. 简述对websocket的了解,具体有什么优点,和长轮询有什么区别

WebSocket 是一种基于 TCP 协议的全双工通信协议,在客户端和服务器之间建立一个持久化的连接,实现双向实时通信。与 HTTP 协议相比,WebSocket 的优点包括:

    • 实时性更高:WebSocket 建立的是持久连接,可以实时地推送数据,而不需要像 HTTP 请求那样每次都要重新建立连接。
    • 双向通信:WebSocket 支持客户端和服务器之间的双向通信,客户端可以主动发送消息给服务器,服务器也可以主动向客户端推送消息。
    • 更少的网络流量:WebSocket 的请求头比 HTTP 短,只有几个字节,因此可以减少网络流量。

长轮询是一种模拟实时通信的技术,它的原理是客户端定时向服务器发送请求,服务器在收到请求后,如果有新数据就立即返回,否则就一直等待直到超时。与 WebSocket 相比,长轮询的缺点是需要频繁地发送请求,增加了网络流量和服务器负担。

18. websocket里是怎么处理数据的 四个事件

WebSocket 处理数据有四个主要事件:

    • onopen 事件:建立连接后触发,可以在该事件中发送握手信息或者心跳包等。
    • onmessage 事件:接收到消息时触发,可以在该事件中处理收到的数据。
    • onerror 事件:出现错误时触发,可以在该事件中处理错误信息。
    • onclose 事件:连接关闭时触发,可以在该事件中进行资源释放等操作。

19. websocket做一个负载均衡,使用Java做websocket怎么做

在 Java 中实现 WebSocket 负载均衡可以使用 Nginx 或者 Apache 等 Web 服务器来实现。具体步骤如下:

    • 安装并配置 Nginx 或 Apache 作为反向代理服务器。
    • 在反向代理服务器上配置 WebSocket 模块或插件,以支持 WebSocket 连接。
    • 将请求转发到后端的多个 WebSocket 服务器,例如使用 Round-Robin 负载均衡算法等。

在 Java 中实现 WebSocket 服务器可以使用 Java EE 7 或者 Spring 框架等来实现。具体步骤如下:

    • 使用 Java EE 7 中的 WebSocket API 或者 Spring 框架中的 WebSocket 模块来实现 WebSocket 服务器。
    • 部署多个 WebSocket 服务器,并使用负载均衡技术来均衡分配请求。
    • 使用集群技术来保证 WebSocket 服务器的高可用性,例如使用 ZooKeeper 来实现服务发现和负载均衡等。

20. 加密这块了解多少

21. 使用过Git吗,有没有遇到过Git冲突的时候

22. 如果遇到网络异常怎么保证消息的完整性 不被丢失

    • 重试机制:在网络连接断开或者出现异常时,可以重新发送消息,直到消息被正确地发送并接收到回复。
    • 心跳机制:定期发送心跳包以保持连接状态,并检测网络连接是否正常,如果异常则进行重连。
    • 消息队列:将消息存储到消息队列中,等待网络连接恢复后再进行发送。
    • 数据备份:将数据备份到不同的服务器或存储设备中,以防止数据丢失

23. DNS是做什么的 DNS解析过程(问的比较底层,要我说底层递归过程,顶级,一级,二级域名DNS)

    1. DNS(Domain Name System)是一种分布式的域名解析系统,它将域名映射为 IP 地址。DNS 解析过程主要包括以下步骤:
    2. 客户端向本地 DNS 服务器请求解析域名,如果本地 DNS 服务器缓存了该域名对应的 IP 地址,则直接返回结果,否则进行下一步。
    3. 本地 DNS 服务器向根 DNS 服务器发出请求,询问该域名所属的顶级域名服务器的 IP 地址。
    4. 根 DNS 服务器返回顶级域名服务器的 IP 地址,本地 DNS 服务器再向顶级域名服务器发出请求,询问该域名所属的二级域名服务器的 IP 地址。
    5. 顶级域名服务器返回二级域名服务器的 IP 地址,本地 DNS 服务器再向二级域名服务器发出请求,询问该域名对应的 IP 地址。
    6. 二级域名服务器返回该域名对应的 IP 地址,本地 DNS 服务器将结果缓存起来并返回给客户端。

在这个过程中,DNS 服务器之间会进行递归查询或迭代查询,以查找到最终的 IP 地址,并将结果返回给客户端。

24. 手撕快排,二叉树的反转

25. 最近在做什么项目

26. 反问

作者:余超颖

快手测开实习二面(商业化)_牛客网

数字马力测开长沙二面挂_牛客网

你可能感兴趣的:(面经,java,数据库,linux,七牛云,面经,软件测试,大厂)