你准备英文自我介绍了吗?24校招-忆恒创源测试开发二面(下)
大家好,我是chowley 本篇来记录一下我之前参加「Memblaze」-「测试开发」的面试过程,针对其中一些问题给出了我的答案。
部门:长三角地区
时间:笔试60min+技术面40min
平台:腾讯会议
过程
-
request+pytest,测试设计
○ requests是Python中常用的HTTP库,用于发送HTTP请求和处理响应。
○ pytest是Python中常用的测试框架,支持多种类型的测试,如单元测试、集成测试等。
○ 使用requests和pytest进行测试设计时,可以按照以下步骤:
ⅰ. 安装requests和pytest库:pip install requests pytest
ⅱ. 编写测试用例:使用requests发送HTTP请求,然后使用pytest编写测试函数来验证响应结果。
ⅲ. 执行测试:使用pytest命令执行测试,并查看测试结果。
-
缓存流咋做的?
○ 缓存流通常指的是在处理数据流时,使用缓存来提高数据访问速度和效率的技术。
○ 实现缓存流的关键在于选择合适的缓存策略和数据结构,以及合理地管理缓存的数据。
○ 常见的缓存流实现方式包括使用内存缓存、文件缓存、数据库缓存等,具体实现方式取决于具体场景和需求。
-
Redis数据结构
○ Redis支持多种数据结构,包括字符串(string)、哈希表(hash)、列表(list)、集合(set)、有序集合(sorted set)等。
○ 字符串用于存储简单的值,哈希表用于存储键值对集合,列表用于存储有序的元素集合,集合用于存储无序的唯一元素集合,有序集合用于存储有序的唯一元素集合。
○ 每种数据结构都有对应的操作命令,可以对数据进行增删改查等操作,具有高效的性能和丰富的功能。
-
集合的应用场景
○ 集合在Redis中有着广泛的应用场景,如统计计数、数据去重、关联关系存储等。
○ 统计计数:可以使用集合来存储某个元素的出现次数,利用集合的唯一性和计数功能来进行统计。
○ 数据去重:可以使用集合来存储数据,利用集合的唯一性来实现数据去重功能。
○ 关联关系存储:可以使用集合来存储两个元素之间的关联关系,如用户与标签的关联关系等。
-
redis和mysql读写一致性怎么保证?
○ 事务控制:在需要保证一致性的操作中,将Redis和MySQL的操作放在同一个事务中,保证它们要么同时成功,要么同时失败。
○ 异步复制:通过在Redis和MySQL之间建立异步复制机制,可以在Redis写入后异步地将数据同步到MySQL,从而实现数据的一致性。
○ 监听机制:在Redis和MySQL中分别设置监听器,当其中一个发生变化时,另一个及时做出相应的更新,保持数据的一致性。
-
进程之间怎么通信?
○ 进程间通信(IPC,Inter-Process Communication)可以通过多种方式实现,包括管道、消息队列、共享内存、信号量等。
○ 管道(Pipe):用于在两个进程之间传递数据,其中一个进程将数据写入管道,另一个进程从管道中读取数据。
○ 消息队列(Message Queue):用于在进程之间传递消息,发送进程将消息放入队列,接收进程从队列中取出消息。
○ 共享内存(Shared Memory):用于让多个进程共享同一块内存区域,可以直接读写共享内存,效率较高。
○ 信号量(Semaphore):用于控制多个进程对共享资源的访问,可以实现进程间的同步和互斥。
-
线程间如何共享资源?
○ 线程间可以通过共享内存的方式共享资源,但需要注意线程安全性问题。
○ 在多线程环境下,如果多个线程同时访问和修改同一份资源,可能会导致竞态条件(Race Condition)和数据不一致的问题。
○ 为了确保线程间共享资源的安全访问,可以使用互斥锁(Mutex)、条件变量(Condition Variable)、读写锁(Read-Write Lock)等同步机制来保护共享资源。
-
对未来发展的思考
-
行业的选择
-
拿了哪些offer?
总结
难度:3.5/5,问的不难,但是我没有硬件厂商经历,不太契合属于是
面试官专业程度:专业,但是没让我反问
体验打分:一般,非得线下复试,哥们起个大早
好了,以上就是本文的全部内容,如有问题可留言讨论。
本人正在组建校招测试开发方向的交流社区,如果您对测试求职方面感兴趣,欢迎加入了解。
我是chowley,一个专注互联网技术和产品质量保障领域的博主,我们下次再见!
欢迎点赞、评论、收藏,it's important for me.
Searching for QALog.
#软件开发2024笔面经##测试开发##校招##春招##面经#记录了chowley在24校招的技术面试全过程