校招 未知部门 / 测试开发 / 一面

[面试日期] 2025-02-20 [面试时长] 未知
[学校背景] 华南理工大学 | 985 [学历背景] 未知
[发布人] 面试之星官方收录
<h2>快手测试开发一面 2023秋招</h2> <p> <strong>1.介绍实习项目,针对项目仔细提问,问测试流程,压测怎么做的,开发用了什么技术栈,具体细节等。</strong></p><p>压测模拟高并发用户访问或极端负载条件,系统在压力下的性能、稳定性、可靠性</p><p>(1)明确压测目标</p><ul><li>性能指标:如响应时间、吞吐量、并发用户数、tps等。</li><li>系统瓶颈:如 CPU、内存、磁盘 I/O、网络带宽等。</li><li>稳定性:系统在长时间高负载下的表现。</li><li>容错能力:系统在极端条件下的恢复能力。</li></ul><p>(2)压测计划</p><ul><li>测试场景:模拟哪些用户行为(如登录、搜索、下单等)。</li><li>测试工具:选择合适的压测工具(如 JMeter、LoadRunner、Locust 等)。</li><li>测试环境:搭建与生产环境相似的测试环境。</li><li>测试数据:准备足够的测试数据(如用户账号、商品信息等)。</li><li>性能指标:定义需要监控的性能指标(如响应时间、95线、错误率、TPS 等)。</li></ul><p>(3)搭建测试环境</p><ul><li>硬件环境:确保测试环境的硬件配置(如服务器、网络)与生产环境一致或接近。</li><li>软件环境:部署与生产环境相同的软件版本(如操作系统、数据库、中间件等)。</li><li>监控工具:部署性能监控工具(如 Prometheus、Grafana、Zabbix 等),实时监控系统资源使用情况。</li></ul><p>(4)设计测试场景</p><p>根据实际业务需求,设计不同的测试场景:</p><ul><li>基准测试:低并发下测试系统的性能基线。</li><li>负载测试:逐步增加并发用户数,测试系统在不同负载下的表现。</li><li>压力测试:模拟极端高并发,测试系统的极限性能。</li><li>稳定性测试:长时间运行高负载,测试系统的稳定性。</li><li>容错测试:模拟异常情况(如网络中断、服务器宕机),测试系统的容错能力。</li></ul><p>(5)编写压测脚本,模拟用户行为</p><ul><li>HTTP 请求:模拟用户访问网页、提交表单等操作。</li><li>数据库操作:模拟用户查询、插入、更新等数据库操作。</li><li>业务流程:模拟完整的业务流程(如用户登录、浏览商品、下单支付)。</li></ul><p>(6)执行压测</p><ul><li>逐步加压:从低并发开始,逐步增加并发用户数,观察系统表现。</li><li>监控性能:实时监控系统的性能指标(如响应时间、错误率、资源使用率)。</li><li>记录日志:记录压测过程中的日志和错误信息,便于后续分析。</li></ul><p>(7)分析压测结果</p><ul><li>性能指标:对比实际性能与预期目标,判断是否达标。</li><li>系统瓶颈:分析系统在高负载下的瓶颈(如 CPU 使用率过高、数据库连接池耗尽)。</li><li>错误日志:分析错误日志,找出系统的问题(如超时、崩溃、内存泄漏)</li></ul><p>(8)优化调整</p><p>根据压测结果,对系统进行优化和调整:</p><ul><li>代码优化:优化性能瓶颈代码(如减少数据库查询、使用缓存)。</li><li>配置调整:调整系统配置(如线程池大小、数据库连接数)。</li><li>架构改进:优化系统架构(如引入负载均衡、分布式缓存)</li></ul><p>(9)回归测试</p><p>在优化和调整后,重新执行压测,验证优化效果:</p><ul><li>验证性能提升:确认优化后的系统性能是否达到预期。</li><li>确保稳定性:确认系统在高负载下是否稳定运行。</li></ul><p>(10)输出压测报告</p><ul><li>测试目标:压测的目的和范围。</li><li>测试环境:硬件、软件和网络配置。</li><li>测试场景:设计的测试场景和脚本。</li><li>性能指标:压测过程中的性能数据(如响应时间、吞吐量、错误率)。</li><li>问题分析:发现的问题和瓶颈。</li><li>优化建议:针对问题的优化建议和改进措施</li></ul><p></p><p><strong>2.http和https,加密机制</strong></p><p>都是客户端和服务端之间传输数据的协议,主要区别在于安全性,主要是数据的加密机制</p><p>https是http的安全版本,通过SSL/TLS协议对数据进行加密传输,需要服务器从CA配置 SSL/TLS 证书。</p><p> HTTP 和 HTTPS 的对比</p><table><tbody><tr><td><p><strong>协议</strong></p></td><td><p>明文传输</p></td><td><p>加密传输(SSL/TLS)</p></td></tr><tr><td><p><strong>端口</strong></p></td><td><p>80</p></td><td><p>443</p></td></tr><tr><td><p><strong>安全性</strong></p></td><td><p>不安全</p></td><td><p>安全</p></td></tr><tr><td><p><strong>加密机制</strong></p></td><td><p>无</p></td><td><p>对称加密 + 非对称加密</p></td></tr><tr><td><p><strong>证书</strong></p></td><td><p>不需要</p></td><td><p>需要 SSL/TLS 证书</p></td></tr><tr><td><p><strong>性能</strong></p></td><td><p>较快</p></td><td><p>稍慢(由于加密开销)</p></td></tr><tr><td><p><strong>适用场景</strong></p></td><td><p>不涉及敏感信息的传输</p></td><td><p>涉及敏感信息的传输(如登录、支付)</p></td></tr></tbody></table><p>加密机制 SSL/TLS 协议</p><p>其包含</p><p>(1)对称加密</p><p> 相同密钥 </p><p>(2)非对称加密</p><p> 公钥 私钥 会话密钥</p><p>HTTPS 的加密通信是通过 SSL/TLS 握手过程建立的,具体步骤如下:</p><li>客户端发起请求:客户端向服务器发送支持的 SSL/TLS 版本和加密算法列表。</li><li>服务器响应:服务器选择加密算法,并返回 SSL/TLS 证书(包含公钥)。</li><li>客户端验证证书:客户端验证证书的有效性(如是否过期、是否由受信任的证书颁发机构签发)。</li><li>密钥交换:客户端生成一个随机的<strong>对称加密密钥(称为“会话密钥”)</strong>,并用服务器的公钥加密后发送给服务器。</li><li>服务器解密密钥:服务器用自己的私钥解密,获取会话密钥。</li><p>加密通信:客户端和服务器使用会话密钥进行对称加密通信。</p><p> <strong>3.一个网址从浏览器输入的全流程</strong></p><p>解析域名 :协议 域名 路径</p><p>dns解析:域名-&gt;IP地址 在浏览器缓存内部-&gt;host本地缓存-&gt;dns缓存-&gt;根DNS服务器-&gt;顶级域服务器-&gt;权威域DNS服务器</p><p>首先于服务器建立tcp连接(三次握手)-&gt;建立https协议(TLS/SSL握手)-&gt;发送HTTP请求-&gt;收到HTTP响应报文-&gt;渲染界面</p><p>四次挥手关闭tcp连接</p><p></p><p><strong>4.python多线程</strong></p><p><span>多线程是一种并发编程技术,允许程序同时运行多个线程,从而提高程序的执行效率。</span></p><p>Python 提供了 <code>threading</code> 模块来实现多线程编程。主要类和方法包括:</p><li>threading.Thread:用于创建和管理线程。</li><li>threading.Lock:用于线程同步,防止资源竞争。</li><li>threading.Event:用于线程间通信。</li><li> threading.current_thread():获取当前线程对象。</li><p></p><p> 专注四小时到啦!你真棒!现在去吃饭! </p><p> <strong>5.代码:最长公共子序列</strong></p><p> 思路: <span>双字符串动态规划问题</span></p><p></p>
AI 推荐面试题