前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >金三银四,中高级测试面经,我不信你能看完!

金三银四,中高级测试面经,我不信你能看完!

作者头像
清菡
发布2021-02-26 15:42:34
6140
发布2021-02-26 15:42:34
举报

点击上方蓝色“清菡软件测试”,关注并选择“设为星标”

要坚持啊!

作者:清菡 不会的东西很多,要学习的东西很多。想学的太多,但是行动力太少。心情像天上的云起伏不定,心情好的时候,文章就出来了。正是因为必须要学的东西太多,那么就一定要抓住重点,先学什么,后学什么,要分清主次。二十多岁的精力是有限的,已然没有太多时间去抱怨纠结,更何况你是个健康的人。一直对自己的要求很高,身边人对我的期待也高,小伙伴们需要的源码、视频后续都会有,不要着急,保质保量。新的一年,希望大家都快乐一些。

写在前面

又到了金三银四跳槽季,很多小伙伴出去面试时,会问到 Python 相关知识,接口自动化,Web 自动化相关知识,有些小伙伴心里是知道答案的,但是回答得却不是很完美,归根结底,就是对知识点理解得不够透彻。今天整理了下常问问题,请耐心看完!注:求人不如求已,切记学会靠自己!!!

1.什么是 Python 垃圾回收机制?

没用的东西就是垃圾。在程序中,没被引用的对象就是垃圾。这种垃圾对象过多以后会影响到程序的运行的性能,所以必须进行垃圾回收。所谓的垃圾回收就是将垃圾对象从内存中删除。

在 Python 中有自动的垃圾回收机制,自动将没有被引用的对象删除。所以我们不用手动处理垃圾回收。

class A:
    def __init__(self):
        self.name="A类"
# del是一个特殊方法,它会在对象被垃圾回收前调用。写出来这个方法的目的是:通过这个方法可以让你肉眼看到垃圾对象被回收。
    def __del__(self):
        print("A()对象被删除了~",self)
a=A()
b=a #又使用一个变量b,来引用a对应的对象。

print(a.name)
# a=None#将a设置为了None,此时没有任何的变量对A()对象进行引用,它就是变成了垃圾

#del a  #删除的不是对象,删除的是变量
# del b
input("回车键退出....")

当你敲回车程序结束的时候,这些对象也会被自动删除。

需要把链接复制到百度打开视频:https://haokan.baidu.com/v?vid=409577335351076379&pd=bjh&fr=bjhauthor&type=video

2.where 和 having 有什么区别?

havingwhere都是用来筛选用的,having是筛选组,where是筛选记录。区别:

  • 1.当分组筛选的时候用having
  • 2.其它情况用where

having就一定要和group by连用,用group by不一定有having

需要把链接复制到百度打开:https://blog.csdn.net/yexudengzhidao/article/details/54924471

3.什么是左连接、右连接?

left join:左连接,是以左表为基础,根据 on 后给出的两表条件将两表连接起来。结果会将左表所有的查询信息列出,而右表只列出 on 后条件与左表满足的部分。左连接全称为左外连接,是外连接的一种。

right join:右连接,是以右连接为基础,根据 on 后给出的两表的条件将两表连接起来。结果会将右表所有的查询信息列出,而左表值列出 on 后条件与右表满足的部分。右连接全称为右外连接,是外连接的一种。

inner join:内连接,同时将两表作为参考对象,根据 on 后给出的两表的条件将两表连接起来。结果则是两表同时满足 on 后的条件的部分才会列出。

mysql 中没有全外连接。

图片来自网络,画的特别好。哈哈哈

把链接复制到百度打开:http://blog.sina.cn/dpool/blog/s/blog_161231e190102wqog.html

4.linux 直接查看某个进程的占用端口号?

第一步,查询进程关键字为 xinetd(TFTP 服务程序)

ps -aux|grep [name]例如:ps -aux|grep xinetd

图片来自网络

这样就查询到了 pid。第二步,使用 netstat 命令查询端口占用。netstat -nap|grep [pid]

例如:netstat -nap|grep [15770]

图片来自网络

查询到占用的端口号为 69。

5.Python 的数据类型是哪些?

int类、布尔值:bool类、字符串:str类、列表:list类、元组:tuple类、字典:dict类、集合:set类。

靠谱链接:https://www.cnblogs.com/littlefivebolg/p/8982889.html

这个链接需要复制到百度才能打开。

6.解释下 Python 列表推导式?

打开查看列表推导式解析

7.Python 的字典、列表、集合、元组有什么区别?

列表: 有序、可读写、元素可修改、列表用[]、能通过下标访问。

元组: 有序、只读、元素不可修改、元组用()、能通过下标访问。

集合: 无序、可读写、元素不可修改、不能通过下标访问、用{}表示。

字典: 无序、可读写、元素可修改、能通过下标访问、用{}表示。

元组和列表相比,比列表操作速度快,元组占用内存少。 字典和列表比较,字典查找和插入的速度快,占用大量内存。

靠谱链接:https://www.jianshu.com/p/5ede7fa96d83

这个链接需要复制到百度才能打开。

8.App 从后台唤起 Activity 经历的阶段?

running 运行:在屏幕前台(位于当前任务堆栈的顶部) paused 暂停:失去焦点但仍然对用户可见(覆盖 activity 可能是透明或未完全遮挡) stopped 停止:完全被另一个 activity 覆盖 destroyed 销毁:退出,完全销毁

图片来自网络

靠谱链接:https://blog.csdn.net/xiajun2356033/article/details/78741121?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-5.control

这个链接需要复制到百度才能打开。

9.网页兼容性测试如何去做?

不同的操作系统平台,浏览器,以及分辨率进行测试。

靠谱链接:https://blog.csdn.net/qq_39247153/article/details/88963809

这个链接需要复制到百度才能打开。

10.Jenkins 如何写脚本配置不同得 job?

靠谱链接:https://www.cnblogs.com/herui1991/p/12657809.html

这个链接需要复制到百度才能打开。

11.Web 自动化的三种等待的区别是啥?

1.强制等待。 不常用。

sleep(秒)

2.隐性等待。 不常用。

适用条件是查找元素和等待命令的执行完成。

implicitly_wait(秒)

如果单位是 30 秒,不会傻等 30 秒,如果你在 30 秒内找到了一个元素,比如第 15 秒找到了,那么后面 15 秒就不再等了,在找到的时候就马上去执行下一步,所以是种智能等待方式。

只要在这个时间上限之内,这个元素出现了,什么时候出现就什么时候不再等待。如果超过 30 秒还没有出现,就会抛出异常“TimeoutExceiption”,提示等待超时了,元素至今还没有出现。但是它是整个会话周期有效的。

3.必须掌握"显性等待"

WebDriverWait(driver,等待时长,轮循周期).until()/until_not()

明确提出到底要等什么,这个就叫做显性,非常明显的条件。

明确等到某个条件满足后,再去执行下一步。

第一部分是等待,第二部分是条件。

等待:

由两个东西来完成,第一个是WebDriverWait类,它是个显性等待类,这个类中处理的事有什么呢?

WebDriverWait类初始化的条件:

driver:第一个是会话对象,就是说它要知道在哪个会话基础上去等待什么样的条件完成,知道是在哪个页面。

等待时长:也就是最多等多少秒,例如等 20 秒,20 秒以内,啥时候出现都不成问题。

轮循周期:是多久去看一次,比如轮循周期是 1 秒钟,就是每一秒去看下这个条件是否成立。

如果它每隔多少秒去看了下,最终在你等待的时限之内,还没有找到一样的,会报TimeoutException

条件:

until()

until是直到某某某条件成立,条件写在()里面的。

直到什么条件成立,等到这个条件成立,until_not()就是等到这个条件不成立,直到找不到某个元素为止,直到页面没有哪个元素。

三种等待的区别

12.手写冒泡排序


a=[1,7,4,89,34,2]
for i in range(0,len(a)-1):  # 循环第i趟
    for j in range(0,len(a)-1): #j为下标
        if a[j]>a[j+1]:  # 如果这个数大于后面的数,就交换两者的位置
            a[j],a[j+1]=a[j+1],a[j]
    print(a)#每一趟比较完了就打印一次
print(a)#打印最后一趟的结果

"""
for i in range(1,len(a)):
代表循环i趟,a=[1,7,4,89,34,2]里面六个元素.
0,len(a)-1代表0 1 2 3 4 5那么就是6趟

for j in range(0,len(a)-1):中j为下标,那么0就代表a=[1,7,4,89,34,2]
里面六个元素中的1,因为从0开始的下标,所以减1得到的才是最后一个元素。
如果不减1,那么就多了一个元素的位置,但是里面只有六个元素,没有七个元素。
"""

13.手写斐波那契数列

a=0
b=1
while b<10:
    print(b,end=',')
    a,b=b,a+b

注:文章中的链接是本人整理过来的,皆来自网络。链接中的视频、文章版权皆归原作者所有。计算机知识都一样,文章是小编整理的。如有雷同,纯属巧合。

公众号 清菡软件测试 首发,更多原创文章:清菡软件测试 129+原创文章,欢迎关注、交流,禁止第三方擅自转载。如有转载,请标明出处。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-02-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 清菡软件测试 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 写在前面
    • 1.什么是 Python 垃圾回收机制?
      • 2.where 和 having 有什么区别?
        • 3.什么是左连接、右连接?
          • 4.linux 直接查看某个进程的占用端口号?
            • 5.Python 的数据类型是哪些?
              • 6.解释下 Python 列表推导式?
                • 7.Python 的字典、列表、集合、元组有什么区别?
                  • 8.App 从后台唤起 Activity 经历的阶段?
                    • 9.网页兼容性测试如何去做?
                      • 10.Jenkins 如何写脚本配置不同得 job?
                        • 11.Web 自动化的三种等待的区别是啥?
                          • 等待:
                          • 条件:
                        • 12.手写冒泡排序
                          • 13.手写斐波那契数列
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档