前言
“面试造航母,工作拧螺丝。”
这句话在互联网行业可以说是很真实了,但作为面试官来说,大都时候的一场面试,并不是主要面你需要的岗位,而是看你掌握的能力把你安排到缺少的岗位
因此初面的范畴都是很广的,什么算法知识、工具掌握、语言基础甚至些前端运维的知识都很常见
这里就给大家举例十个,在面试自动化测试的时候,所谓的大厂都爱出的面试题
一.项目
上一个项目做的什么、在项目中负责的什么等类似的问题
如果是实习岗,便会问你最近在学些什么,碰到过什么问题
主要是和你交流简历上写的经历,会挑选你简历上的一些信息进行询问,并顺着你的回答深入询问。
这一步是为了筛选你的个人经历的“厚度”和真实性,在简历上就要记得写自己擅长的方面,有一些拿捏不住的经历一定不要虚夸记录
二.http和https的区别是什么
这个问题会设计到前端问题,做一个自动化测试只有三种:UI自动化测试,接口自动化测试,性能自动化测试,而前端和接口密不可分,连http的报文都不能完全掌握,就没必要把你往接口岗位输送了
参考答案
HTTP 协议传输的数据都是未加密的,也就是明文的,因此使用 HTTP 协议传输隐
私信息非常不安全,为了保证这些隐私数据能加密传输,于是网景公司 设计了SSL(Secure Sockets Layer)协议用于对 HTTP 协议传输的数据进行加密,从而就诞生了 HTTPS。简单来说,HTTPS 协议是由 SSL+HTTP 协议构建的可进行加密传输、身份认证的网络协议,要比 http 协议安全。
HTTPS 和 HTTP 的区别主要如下:
总的来说: HTTPS=SSL+HTTP
1、https 协议需要到 ca 申请证书,一般免费证书较少,因而需要一定费用。
2、http 是超文本传输协议,信息是明文传输,https 则是具有安全性的 ssl 加
密传输协议。
3、http 和 https 使用的是完全不同的连接方式,用的端口也不一样,前者是 80,
后者是 443。
(这个只是默认端口不一样,实际上端口是可以改的)
4、http 的连接很简单,是无状态的;HTTPS 协议是由 SSL+HTTP 协议构建的可进
行加密传输、身份认证的网络协议,比 http 协议安全。
HTTP 请求报文与响应报文格式
请求报文包含三部分:
a、请求行:包含请求方法、URI、HTTP 版本信息
b、请求头部(headers)字段
c、请求内容实体(body)
响应报文包含三部分:
a、状态行:包含 HTTP 版本、状态码、状态码的原因短语
b、响应头部(headers)字段
c、响应内容(body)实体
三.接口测试细节方面的面试题
不管你有无通过上一个问题,面试官趋于保守,会再问一个接口相关的问题,这个迹象可能会被看做是刻意刁难,但是要知道,谁也不愿放过一个潜在的人才,多几重问题才能确定一个人是否合适一个岗位
关乎接口测试细节方面的问题有很多,基本是考虑接口测试深度,以下问题由浅入深
1.json 和字典的区别?
对基础数据类型的考察
2.测试的数据你放在哪?
数据与脚本分离
3.参数化
数据驱动模式
4.下个接口请求参数依赖上个接口的返回数据
参数关联
5.依赖于登录的接口如何处理
token 和 session 的管理
6.依赖第三方的接口如何处理
mock 模拟数据返回
7.不可逆的操作,如何处理,比如删除一个订单这种接口如何测试
造数据
8.接口产生的垃圾数据如何清理
数据清理
9.一个订单的几种状态如何全部测到,如:未处理,处理中,处理失败,处理成功
造数据,改数据库订单状态
10.python 如何连接数据库操作?
11.其它的就是运行出报告、代码管理(git)、运行策略和持续集成 jenkins相关了
四.Linux指令
你常用的Linux指令有哪些?举例几个你用过的Linux指令,并说出他们的用处
Linux指令是一个我喜欢出的问题,因为通过Linux指令使用的熟练与否能看出一个人互联网工作的年限,与是否有专业学习过计算机基础
这里拿出十个测试人员常用的linux指令与作用
ls 查看目录中的文件
cd /home 进入 ‘/ home’ 目录;cd … 返回上一级目录;cd …/… 返回上两级目录
mkdir dir1 创建一个叫做 ‘dir1’ 的目录
rmdir dir1 删除一个叫做 ‘dir1’ 的目录 (只能删除空目录)
rm -f file1 删除一个叫做 ‘file1’ 的文件’,-f 参数,忽略不存在的文件,从不给出提示。
rm -rf /mulu 目录下面文件以及子目录下文件
cp /test1/file1 /test3/file2 如将/test1 目录下的 file1 复制到
/test3 目录,并将文件名改为 file2
mv /test1/file1 /test3/file2 如将/test1 目录下的 file1 移动到
/test3 目录,并将文件名改为 file2
mv * …/ Linux 当前目录所有文件移动到上一级目录
ps -ef|grep xxx 显示进程 pid
五.测试工具
你常用的测试工具?上个项目中你用过什么测试工具?等类似工具的问题
其实一般会拿两个工具让你比较,说一下优劣
这类问题是一个表现的机会,一定要记得旁征博引,将现有话题引到自己擅长的工具上面去
六.元素定位
怎么确定一个页面元素是否存在?常用的元素定位方法?
上面说过了,自动化测试只分UI自动化测试、接口自动化测试和性能自动化测试,元素定位就主要在UI自动化测试阶段提问
参考答案:
方法一:用 try…except…
def is_element_exsist(driver, locator):
'''
判断元素是否存在,存在返回 True,不存返回 False
:param locator: locator 为元组类型,如("id", "yoyo")
:return: bool 值,True or False
'''
try:
driver.find_element(*locator)
return True
except Exception as msg:
print("元素%s 找不到:%s" % (locator, msg))
return False
if __name__ == '__main__':
loc1 = ("id", "yoyo") # 元素 1
print(is_element_exsist(driver, loc1))
方法二:结合 WebDriverWait 和 expected_conditions 判断from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
def is_element_exsist2(driver, locator):
'''
结合 WebDriverWait 和 expected_conditions 判断元素是否存在,
每间隔 1 秒判断一次,30s 超时,存在返回 True,不存返回 False
:param locator: locator 为元组类型,如("id", "yoyo")
:return: bool 值,True or False
'''
try:
WebDriverWait(driver, 30,
1).until(EC.presence_of_element_located(locator))
return True
except:
return False
if __name__ == '__main__':
loc1 = ("id", "yoyo") # 元素 1
print(is_element_exsist2(driver, loc1))
七.遇到过的问题
你的项目碰到过什么问题?是如何解决的?
这也是个考验型的问题,可以简单地说说平常遇到过的坑,这个问题主要是用来看个人深度的
八.测试用例
水杯,电梯等都是经典测试用例面试题,还有问:说下常用的黑盒测试方法?什么情况下用哪种?
自动化测试超脱与点点点,但是离不开点点点,虽说进入了技术的范畴,但是还是逃不开业务范围
参考答案
功能
- 水倒水杯容量的一半
- 水倒规定的安全线
- 水杯容量刻度与其他水杯一致
- 盖子拧紧水倒不出来
- 烫手验证
性能
- 使用最大次数或时间
- 掉地上不易损坏
- 盖子拧到什么程度水倒不出来
- 保温时间长
- 杯子的耐热性
- 杯子的耐寒性
- 长时间放置水不会漏
- 杯子上放置重物达到什么程度杯子会被损坏
界面
- 外观完整、美观
- 大小与设计一样(高、宽、容量、直径)
- 拿着舒服
- 材质与设计一样
- 杯子上的图案掉落
- 图案遇水溶解
安全
- 杯子使用的材质毒或细菌的验证
- 高温材质释放毒性
- 低温材质释放毒性
易用性
- 倒水方便
- 喝水方便
- 携带方便
- 使用简单,容易操作
- 防滑措施
兼容性
- 杯子能够容纳果汁、白水、酒精、汽油等。
震动测试
- 杯子加包装(有填充物),六面震动,检查产品是否能应对铁路/公路/航空运输。
可移植性
- 杯子在不同地方、温度环境下都可以正常使用。
九.字符串
手撕代码,必不可少,这个不多加赘述了,题目太多,堪称题海
十.你还有什么想问的吗
这个问题估计在面试场景的出现率会有90%以上,面试是一个有来有回的过程,而不是单方面的询问
我还是挺喜欢在这个环节有不少问题的人,即使他不会选择我的公司
这里提出几个常见提问
1.贵公司目前的项目在做那个阶段?
2.贵公司用的测试框架是什么
3.入职以后我的主要职责在那个方面
4.您对我的这次面试有什么评价吗(这个很重要)
后话
以上这些面试题都是非常容易被面试官问到的,建议保存,面试之前反复观看,最后祝愿所有的面试者都能够找到自己满意的工作。
作为一个软件测试的过来人,我想尽自己最大的努力,帮助每一个伙伴都能顺利找到工作。所以我整理了下面这份资源,现在免费分享给大家,有需要的小伙伴可以关注【公众号:程序员二黑】自提!