hello,我是apan啊,一位失业已久,正在努力学习python的点点点工程师,近期在努力找工作。
本篇记录并总结下我面试遇到的各种python题目以及相关的知识点,分5大类进行分享:基础问题类、算法问题类、自动化相关题目类、持续集成相关题目类、数据库相关题目类。
有写的不对的地方欢迎各位大佬指出,小伙伴们一起学习吧!持续更新。
python基础类题目:
1、 python是什么类型的语言:
解释型
这篇博客是我百度来的,写的比较详细,可参考:https://blog.csdn.net/yatum_2014/article/details/81291367
2、python的数据类型:
整数、浮点数、字符串、元组、列表、字典
相关知识点:
查看数据类型:type()
数据类型转换:str()、int()、list()、set()
(python各数据类型的详细知识点正在整理中,之后会一篇篇分享出来,敢兴趣的小伙伴可以进我主页查看)
3、各数据类型的样式:
元组(1,2,3),列表[‘a’,‘b’,‘c’,4],字典{‘key1’:value1,‘key2’:value2}
4、Try except:
python中用来捕获并处理异常的语句块,即异常处理。一般只考察基础用法。
5、变量的命名规则:
字母数字下划线,数字不能开头
不能与关键字重名
区分大小写
6、字符串的几种格式化,有可能会考一串格式化的print,让你选择打印出来的结果:
Format():
F‘’:
%s,%d,%f:
7、比较运算符:
== != > < >= <=
8、逻辑运算符:
and or not
9、算数运算符:
'''
+ - * / %(取模,返回除法的余数) **(幂,返回x的y次幂) //(整除)
'''
10、赋值运算符:
'''
= += -= *= /= %= **= //=
'''
11、常用的循环控制语句:
If—elif----else
While true:结束本次循环continue、跳出循环break(终止循环)
For in:可遍历字符串、列表,range()的用法:range(start,end)包括start,不包括end
For/while也可以和else连用:循环正常结束后执行else
12、字符串常用方法:
str.split(字符串切片)\str.find(查找字符)\str.strip(去除首尾指定字符)
--------未完待续--------
算法类题目:
1、九九乘法表:
算法类的问题,实现方法有很多种,主要能捋清楚思路就很好回答,下面只是一种方法,有其他方便的思路也欢迎留言分享哦
row = 1
while row <= 9:
col = 1
while col <= row:
print(f'{row}x{col}={row*col}',end='\t')
col += 1
print()
row+=1
2、三角形:
除了常规的输出直角三角形外,有的题目还会出:等边三角形或者其他三角形,一般给图让你写代码,下面是直角三角形的代码,和九九乘法表思路一致,可参考
row = 1
while row <= 4:
col = 1
while col <= row:
print('*',end='')
col += 1
print()
row+=1
3、输出1-2045之间,不是1、3、5、7、9倍数的数字总和(类似的求和问题)
4、去重(有时候会再深入的问你,数据非常多的时候用哪种方法去重比较快,答案:字典)
5、计算x重复出现的次数
自动化相关题目:
因为我也是今年刚开始自学,理解并不深刻,相关的题目尽量百度到其他测试大佬的笔记并贴上链接,供大家一起参考,有不妥的地方联系我立马删除。
1、Web自动化、移动端自动化相同点和不同点
百度到的一篇写的比较具体的大佬笔记:https://blog.csdn.net/weixin_34290096/article/details/89699626
我浅显的认知(可忽略不看):web自动化一般使用selenium,移动端一般使用appium,他们的框架都可以采用po模式
2、常用装饰器
常用:@ddt @classmethod @staticmethod
3、装饰器原理,你会写吗?
(还没找到写的比较详细的帖子,之后补充)
4、随机值:
Import random #导包 random
From random import randint
#常用方法
Random.randint(0,2) #从0,1,2中随机取值,除int外还有其他类型,可以自行百度,主要知道用random就可以
random.choice() #随机选取列表里的一个元素
5、常用的自动化框架有哪些,讲讲对po模式的理解。
6、selenium元素定位方法有哪些,你认为哪个比较可靠?
一共8种,分别为:id、xpath、css_selector(css选择器)、name、link_text、class_name、partial_link_text、tag_name
哪些可靠上次百度到但是忘记了==,个人认为源码里不变动的会比较稳定,比如id、text、name等,但css、xpath比较常用(这点我后续百度到了再修改,也欢迎各位大佬出面解答)
7、移动端弹窗怎么处理?
8、做过的项目里,自动化用例一共多少条,功能覆盖率占比?
9、遇到的较难处理的问题,是怎么解决的。
10、appium的底层驱动
持续集成相关题目:
1、devops
2、CI/CD
数据库相关题目:
1、使用任意编程语言写连接数据库,以及插入sql语句
2、常用的sql语句
主要考察数据库/表/行数据的增删改查操作,以及连表查询、模糊查询等
接口相关题目:
1、用什么工具做接口测试?
2、接口测试关注那些测试点?
其他测试常见面试题:
1、水杯、圆珠笔等普通物品测试,测试用例怎么设计
主要考察测试维度,千万不要纠结某一层面去说,比如不要一直说功能测试方面,可以从整体用例设计的维度去解答。
比如:ui测试、功能测试、兼容性测试、压力测试、安全测试、性能测试、可移植测试、用户体验度、文档等
2、讲一下整个项目的流程。
可以拿工作过的公司举例,按实际流程来说,从需求评审或更早的需求调查敲定等开始讲,一直到产品上线测试这边做的事情结束,其实每家大致流程都是差不多的,能条理清晰的讲明白就ok。
3、未来职业规划,或三年内的职业规划。
主要考察你的职业规划和职位的匹配度,如果面功能测试,你的回答是发展技术,匹配度自然不高了
(小伙伴们还是要认真做好职业规划鸭,术业有专攻,找到自己的方向,按方向找工作对未来发展很有帮助,但是现在的大环境基本都要求测试人员十八般武艺样样精通,所谓面试造火箭,入职点点点哈哈哈,开玩笑啦,多学多进步提升自身价值才是正解,一起加油吧。)
4、遇到开发不愿意改的bug,怎么处理?
类似问题有:
产品需求文档没给到,只是口头交接了一次,怎么展开测试
怎么去跟进/推动测试进程
这类问题,主要考察你的沟通能力、协作能力、推动项目发展的能力,分析前因后果,表达清楚你的观点。
(1)遇到开发不愿意改的bug:和开发沟通,为什么不愿意改(分析原因),是否必须改(分析改的成本),改和不改的有可能会导致的结果及时告知产品和开发,三方洽谈。展开来讲就行。
(2)没给需求文档:和产品沟通,时间紧迫的话先口头详细交接,遇到疑问及时沟通,并自己总结记录好需求分享给项目组其他同事。要求产品之后给出详细文档(需求文档必须是要有的啊,留档且方便其他人员查看)
先更新到这里,后续更新,有其他问题也可以留言我们一起研究答案哦