过完春节,一共参加了 5 个公司的面试。第一家公司,通过了 2 轮技术面试,但是薪资不够理想。第二个公司,被面试的测试专家虐的不要不要的,挂了,但也知道了自己很多不足之处。后面三个公司的面试都顺利拿到了 Offer。凭印象对面试题进行简单总结回顾,以代码方面的问题为主,经验不足,回答水平也有限,希望与同学们一起交流探讨。
P.S. 本人目前用的语言主要是 Python 和 JavaScript,面试的这 5 家公司都是用 Python 做自动化测试,所以以下代码问题基本上都是关于 Python 的。
Python 自动化测试面试题目汇总
1、super 是干嘛用的?在 Python2 和 Python3 使用,有什么区别?为什么要使用 super?请举例说明。
答:
super 用于继承父类的方法、属性。
super 是新式类中才有的,所以 Python2 中使用时,要在类名的参数中写 Object。Python3 默认是新式类,不用写,直接可用。
使用 super 可以提高代码的复用性、可维护性。修改代码时,只需修改一处。
代码举例:
class baseClass: def test1(self, num): print(num)
class sonClass(baseClass):
def test2(self):
super().test1(num)
son = sonClass()
son.test1(11)
2、阅读以下代码,推导最后结果:
def add(n, i): return n+i
def test():
for i in range(4):
yield i
g = test()
for n in [1, 10, 5]:
g = (add(n, i) for i in g)
print(list(g)) # 结果是 [15, 16, 17, 18]
答: 所有的结果都是生成器表达式,不调用它,不从里面取值,就不干活。附上我的推导过程:
n = 1
g = (add(n,i) for i in test())
# print(list(g)) # [1, 2, 3, 4]