zoukankan      html  css  js  c++  java
  • python面试题

    过完春节,一共参加了 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) 。

    以下是过程:

    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 内容:

    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 个字。 【请各位看官拍砖】

    Python 学习回顾和曾经立下的 Flag

    另外,说说我的 Python 学习经历。我买的第一本 Python 书,是《跟老齐学 python 轻松入门》,看了几十页,之后又买了第二本《Python 基础教程》,同样看了几十页就又没看下去了。我个人喜欢刨根究底,入门书感觉满足不了我深入学习 Python 的需求。

    后来翻遍了图书馆的图书,决定买马克路特兹的《Python 学习手册》,全书有 1000 多页,非常详细,拿到书的那天,就下决心,并在微信朋友圈发誓:不搞定这本书 1000 多页的书,就不找女朋友!

    最终在 9个月内,写了 20000+ 行代码,同时结合霍格沃兹测试学院方程老师的博客和课程,宅在家里,持续学习。这个过程需要较强的自律,但确实累并快乐着。

    面试总结

    在自动化测试、测试开发岗面试中,编程知识、Linux 都是必问的。测试开发人员的知识面既要有一定的广度,同时还要有扎实的编码基础。

    路漫漫其修远兮,我还有很长的路要走。接下来的规划,就是跟着方程老师、思寒老师、李隆老师继续学习,系统掌握霍格沃兹测试学院《测试开发从入门到高级实战》高级课程内容,进一步提升自己的实力。霍格沃兹测试学院的这些老师都是资深一线技术专家,知识面都非常广,相信学完课程之后,我也就 NB 啦。

    P.S. 从 3 个 Offer 里敲定最终选择时,我特意咨询了方程老师的意见,被方程老师广博的知识面折服,最后选了方程老师建议的公司(限于隐私,不透露具体信息),哈哈,这里也表示特别感谢 。(end)

    出处:https://baijiahao.baidu.com/s?id=1627152358817785664&wfr=spider&for=pc

  • 相关阅读:
    linux sysfs (2)
    微软——助您启动云的力量网络虚拟盛会
    Windows Azure入门教学系列 全面更新啦!
    与Advanced Telemetry创始人兼 CTO, Tom Naylor的访谈
    Windows Azure AppFabric概述
    Windows Azure Extra Small Instances Public Beta版本发布
    DataMarket 一月内容更新
    和Steve, Wade 一起学习如何使用Windows Azure Startup Tasks
    现实世界的Windows Azure:与eCraft的 Nicklas Andersson(CTO),Peter Löfgren(项目经理)以及Jörgen Westerling(CCO)的访谈
    正确使用Windows Azure 中的VM Role
  • 原文地址:https://www.cnblogs.com/william126/p/10889124.html
Copyright © 2011-2022 走看看