这篇是朋友给我聊的最近面试的一些情况,我来做一个简单分析,这位朋友最终拿到的offer是50w,从面试题分析来看,客观题并不是很难,没什么八股文,基本是按照简历里面的内容做的提问,我认为这是一个比较务实的做法,听过一些朋友吐槽,一些企业面试官喜欢拿着自己的笔记本问,不会过多看你简历里面的技能,全程信息不对称很尴尬。这位朋友做过业务测试,自动化和性能都有不错的实践,所以市场对这样的同学还是蛮欢迎的。
对于大家来说,很关心面试了什么类型的题目,我写了下客观题,必有读者问,能不能说下答案,我说下自己的思路,仅供参考,这位同学基于业务测试面试偏技术的多一点,非管理岗位。
首先肯定会有一些通用类的,比如:
- 描述你当前的工作职责?
- 项目中遇到的问题,如何解决?
通过这两个题目基本都够看出来你在公司的一个段位和思考力,无论你在管理层和执行层面没有思考沉淀这样的同学价值不会很大,所以这两个问题其实非常有针对性,可以结合你现实的情况多思考,多沉淀话术。这样的问题在于数据和实例,不用流水账一样记录平时的工作内容。
除了通用类,关于测试本身,往往业务的、性能的、自动化的都会问,尤其在你简历里已经提到的。
业务类:
最常见的就是画业务流程图,深入一点可能还会问你部署架构图,尤其是你有性能相关的经验。往往局部的业务都能描述一二,主要在于你对全局业务,上下游业务的一个熟悉程度,能够侧面反映出你做事情的认真程度和个人的自我要求。
自动化类:
- 描述下你用的测试框架结构,为什么这么设计?
对于自动化框架,无非是配置文件、数据如何管理,比如环境如何切换等,关键字驱动还是数据驱动,从我个人一些观点来看,平台化是一个比较大的趋势,如果现在选择自动化方案,选择框架的应该不多。
- 很多接口依赖于A接口,怎么处理?
我的思路是作为一个公共元件处理即可。
- python中的传参* ,**什么意思
只要用过Python的这个问题很简单,带一个星号(*)参数的函数传入的参数存储为一个元组(tuple);而带两个星号(*)参数的函数传入的参数则存储为一个字典(dict)。刚毕业时,没学过Python,我还以为是指针,呵呵。
- 编程题:筛选文本中出现最多的单词
我觉得这一道题目考察点是蛮全面的,可以涉及到很多知识点,比如文件操作,字符串转换列表,字典的用法,如果字典内数据需要排序,怎么转换,这些都会涉及。
关键步骤:
每个单词数量统计:
count={}for word in list: if word in counts: counts[word] = counts[word] + 1 else: counts[word] = 1
从高到低排序:
sort=sorted(count.items(), key=lambda item:item[1],reverse=True)
性能测试
- JMeter的beanshell如何获取数据?
举个例子,prev.getResponseDataAsString(),只要用过beanshell的应该都需要会,去获取接口报文返回。
- JMeter组件开发的步骤
导入ApacheJMeter_core.jar,继承AbstractFunction类。通过上述可以自己编写函数助手。
- 如何控制Jmeter的qps
tps controller够用了。
- 下单性能测试场景如何设计?
考虑两点吧,第一是测试目标如何制定的,指标数据从哪里来,第二是如何去做场景控制。
- 接口响应时间长如何定位
现成的工具蛮多的,针对JAVA的,arthas、skywalking都可以,如果能说出适用性更好。
客观题大概是这些,其他的主要是问项目经验,面试过程就是验证你的实践经验是不是充分,对于我个人而言,我看到一份简历,基本上就能够感觉出来这个人是不是我想要的,而面试只是验证自己的想法对不对或者说走个过程,看一看软素质怎么样。当然这位同学offer是50w+(一线城市),相关的项目经验问的也比较仔细,实战经验还是很丰富的;与职位薪酬相比,上述面试官准备的技术题偏简单,不过蛮实用。你觉得难度如何?可以留言。