面试| Python 自动化测试面试经典题目回顾

900 篇文章 28 订阅
572 篇文章 9 订阅

一共参加了 5 个公司的面试。第一家公司,通过了 2 轮技术面试,但是薪资不够理想。第二个公司,被面试的测试专家虐的不要不要的😓,挂了,但也知道了自己很多不足之处。后面三个公司的面试都顺利拿到了 Offer。凭印象对面试题进行简单总结回顾,以代码方面的问题为主,经验不足,回答水平也有限,希望与同学们一起交流探讨。

P.S. 本人目前用的语言主要是 Python 和 JavaScript,面试的这 5 家公司都是用 Python 做自动化测试,所以以下代码问题基本上都是关于 Python 的。

Python 自动化测试面试题目汇总

1、super 是干嘛用的?在 Python2 和 Python3 使用,有什么区别?为什么要使用 super?请举例说明。

答:

  • super 用于继承父类的方法、属性。

  • super 是新式类中才有的,所以 Python2 中使用时,要在类名的参数中写 Object。Python3 默认是新式类,不用写,直接可用。

  • 使用 super 可以提高代码的复用性、可维护性。修改代码时,只需修改一处。

  • 代码举例

2、阅读以下代码,推导最后结果:

答: 所有的结果都是生成器表达式,不调用它,不从里面取值,就不干活。附上我的推导过程:

3、快速编写前端 HTML、JavaScript、Vue 代码。

答:

  • HTML、JavaScript 代码:

  • Vue 代码编写:

4、L = [1, 2, 3, 11, 2, 5, 3, 2, 5, 3],用一行代码得出 [11, 1, 2, 3, 5]

答: list(set(L))

5、L = [1, 2, 3, 4, 5],L[10:]的结果是?

答: 空列表(当时有点紧张,一直在“空列表”和“索引超出范围”两个答案之间徘徊)。

6、L = [1, 2, 3, 5, 6],如何得出 '12356'?

答: 注意,个人觉得这个题有坑,列表的元素不是字符串,所以不能 ''.join(L)。以下是过程:

s = ''

for i in L:

s = s + str(i)



print(s) # 12356

print(type(s)) # <class 'str'>

7、列表和字典有什么区别?

答: 一般都是问列表和元组有什么不同。 (1)获取元素的方式不同。列表通过索引值获取,字典通过键获取。 (2)数据结构和算法不同。字典是 hash 算法,搜索的速度特别快。 (3)占用的内存不同。

8、如何结束一个进程?

答:(1)调用 terminate 方法。 (2)使用 subProcess 模块的 Popen 方法。使用简单,具体用法,这里不展开。

9、进程、线程有什么区别?什么情况下用进程?什么情况下用线程?

答:(1)区别:

  • ① 地址空间和其它资源(如打开文件):进程之间相互独立,同一进程的各线程之间共享。某进程内的线程在其它进程不可见。

  • ② 通信:进程间通信 IPC,线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。

  • ③ 调度和切换:线程上下文切换比进程上下文切换要快得多。

  • ④ 在多线程操作系统中,进程不是一个可执行的实体。

(2)使用场景:同时操作一个对象的时候,比如操作的是一个全局变量,我用线程,因为全局变量是所有线程共享的。

10、什么是ORM?为什么要用ORM?不用ORM会带来什么影响?

答:

  • ORM 框架可以将类和数据表进行对应,只需要通过类和对象就可以对数据表进行操作。

  • 通过类和对象操作对应的数据表,类的静态属性名和数据表的字段名一一对应,不需要写 SQL 语句。

  • ORM 另外一个作用,是根据设计的类生成数据库中的表。

11、写一段代码,ping 一个 ip 地址,并返回成功、失败的信息。

答: 使用 subProcess 模块的 Popen 方法(使用简单,具体用法,这里不展开)。

12、说说接口测试的流程,介绍一下request有哪些内容。

答:(1)流程:获取接口文档,依据文档设计接口参数,获取响应,解析响应,校验结果,判断测试是否通过。 (2)request 内容:

  1. ① 封装了各种请求类型,get、post 等;

  2. ② 以关键字参数的方式,封装了各种请求参数,params、data、headers、token 等;

  3. ③ 封装了响应内容,status_code、json()、cookies、url 等;

  4. ④ session 会话对象,可以跨请求。

13、UI 自动化,如何做集群?

答: Selenium Grid。

14、移动端 UI 自动化,经常会自动安装 2 个程序,你知道那两个程序是什么东西不?

答: 守护精灵,和 Python 并发编程中的 daemon 原理一样,父进程/父线程的代码执行完毕,它就终止,要写在 start 方法前面。另外,要找到配置文件,注释掉两行代码。

15、说5个以上 Linux 命令。

答:一口气,劈里啪啦说了 10 多个😄。

16、介绍一下你在这个项目中是如何使用 Jenkins 的。

答:用的不深入,说了基本操作,比如定时构建执行代码。

17、说说你对敏捷模式的认识。

答:小步快跑,拥抱变化。测试中,可以通过行为驱动测试,有个框架 lettuce 可以用。

18、了解过 Docker 不?

答: 了解,没用过。然后说了下对 Docker 大概的认识、优势。

19、说一下你对软件测试的深刻心得。

答: 此处省略 n 个字。 【请各位看官拍砖】

20、做过性能测试没?没做过,说出功能测试的流程。

答: 此处省略 n 个字。 【请各位看官拍砖】

21、Bug 定位、分析、类型。

答: 此处省略 n 个字。 【请各位看官拍砖】

22、测试策略、测试方案的区别。

答: 此处省略 n 个字。 【请各位看官拍砖】

现在还想从事软件测试行业的小伙伴们,想要心仪的工作,要多努力学习哟。我给大家整理了一份800多道软件测试面试真题的PDF文档。高清打印版打包带走,横扫软件测试面试高频问题,涵盖测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来...)

1、阐述软件生命周期都有哪些阶段?常见的软件生命周期模型有哪些?

2、什么是版本控制,常用的版本控制系统有哪些?

3、数据库三大范式是什么?

4、mysq|有关权限的表都有哪几个?

5、MySQL的binlog有有几种录入格式?分别有什么区别?

6、存储引擎选择?

7、什么是索引?

8、索引有哪些优缺点?

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1、切换目录用什么命令?

2、怎么查看进程信息?

3、怎么查看当前路径?

4、删除文件用哪个命令?

5、对文件的内容进行统计?(行号、单词数、字节数)

6、grep命令有什么用?

在这里插入图片描述

在这里插入图片描述

1、请写出table标签下面会包含哪些标签元素?

2、很多网站不常用table iframe这两个元素,知道原因吗?

3、 jpg和png格式的图片有什么区别?

4、常用浏览器有哪些,内核都是什么?

5、form标签上定义请求类型的是哪个属性?定义请求地址的是哪个属性?

6、简述一下src与href的区别?

7、before和::before区别?

8、如何让一个div.上下左右居中?

在这里插入图片描述

在这里插入图片描述

1、自动化工具选择的关注点?

2、常用移动应用自动化测试工具有哪些?

3、什么是 自动化测试?

4、自动化测试优点?

5、Jmeter的作用优点以及缺点?

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

1、JMeter中处理器的类型是什么? 

2、解释什么是预置处理器元件?列出一些预处理器元件?

3、是否提到测试元件的执行顺序?

4、正则表达式中的“包含"和“匹配”表示什么?

5、服务器CPU指标异常怎么办?

6、你们的性能测试需求哪里来?

7、你们性能测试做的是前台还是后台?

8、性能测试指标有哪些?

在这里插入图片描述

在这里插入图片描述

1、说说你最大的缺点?

2、你对加班的看法?

3、你对薪资的要求?

4、在完成某项工作时,你认为领导要求的方式不是最好的,自己还有更好的方法,你应该怎么做?

5、如果你的工作出现失误,给本公司造成经济损失,你认为该怎么办?

在这里插入图片描述

在这里插入图片描述

最后

整份文档一共有将近 200 页,全部为大家展示出来肯定是不太现实的,为了不影响大家的阅读体验就只展示了部分内容,还望大家海涵,希望能帮助到您面试前的复习且找到一个好的工作,也节省大家在网上搜索资料的时间来学习!

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
面试官问到Java接口自动化测试面试题时,你可以回答如下内容: Java接口自动化测试是指使用Java编程语言来进行接口测试的自动化过程。在接口自动化测试中,我们可以使用各种工具和框架来发送HTTP请求,验证响应结果,并进行断言和报告生成等操作。 以下是一些常见的Java接口自动化测试面试题及其答案: 1. 什么是接口自动化测试? 接口自动化测试是指使用自动化工具和框架来模拟和验证接口的行为和功能。通过发送HTTP请求,获取接口的响应结果,并进行断言和验证,以确保接口的正确性和稳定性。 2. 请介绍一下你在接口自动化测试中使用的工具和框架。 在Java接口自动化测试中,常用的工具和框架有: - Apache HttpClient:用于发送HTTP请求和获取响应结果。 - RestAssured:一个流行的Java库,用于编写易读且易于维护的接口测试代码。 - TestNG:一个功能强大的测试框架,用于编写和执行接口测试用例。 - JUnit:另一个常用的Java测试框架,也可以用于编写和执行接口测试用例。 - Postman:一个流行的API开发和测试工具,可以用于发送HTTP请求并验证接口的响应结果。 3. 请介绍一下接口自动化测试的流程。 接口自动化测试的流程通常包括以下几个步骤: - 确定测试目标和需求:明确要测试的接口和测试的功能。 - 设计测试用例:根据接口的需求和功能,设计相应的测试用例。 - 编写测试代码:使用Java编程语言,编写发送HTTP请求、验证响应结果和断言的代码。 - 执行测试用例:运行编写好的测试代码,发送请求并验证响应结果。 - 生成报告和分析结果:根据测试结果生成测试报告,并分析接口的性能和稳定性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值