双非二本如何入职腾讯?只需要做好这些准备就能进大厂?

每年的招聘旺季在“金三银四”和“金九银十”这2段时间,许多在春招中没有找到心仪大厂offer的测试小伙伴最近有私信我,想要了解如何在秋招中一举获得心仪大厂的青睐,那今天我就来和大家扒一扒那些大厂自动化测试面试题以及注意事项哦!

话不多说,我们先来上题目(附答案):


1.三种等待时间的区别和场景应用?

强制等待、隐式等待、显示等待。

l 强制等待:就是说,当我去点击输入用户名字的这一行代码然后把这两行代码,放到这里

不管你这个元素,有没有在页面出现我都等3秒,然后再去操作它。是强制,命令式的。但是这些一般都只用在脚本的调试,不会真正的出现在自动化测试用例中。你想一想,一个用例十行你加了十个,然后一个等三秒那十个等三十秒,一个用例三十秒是不可取的。

l 隐式等待:

那么隐式等待一般用在什么地方呢?和其他等待方式又有什么样的区别?

最主要的一点就是说不管你点哪里它都只要写一次就可以了。像time.sleep(3)你每次都要去写,像driver .implicitly_wait( 3)#一次就好了。它每次去点都会等待三秒,那中间这个三秒它在等什么呢?

下面重点来了,一个页面它可能有非常多的图片,jss、css、img。就是再加载jss的图片。举个例子我想点击搜索按钮

隐式等待的三秒钟就是在等待这个页面的所有js和图片加载出来。就算你搜索按钮出来了,我还要去等js、img加载完成。那么如果三秒钟之类jss、css没有加载完成我还是不会去点你,这就是一个隐式等待。它虽然很方便但是有瑕疵。

PS: 由于篇幅的限制,仅展示了部分内容,除了面试题,我还整理了【模拟面试】和实战教程。需要完整资源的,可以点击下方卡片免费获取↓↓↓

l 显示等待

那么什么叫显示等待呢?

字面意思就是和隐式等待相反。一个是隐藏的一个是非常明显的,我想要去做什么就做什么,不需要等待。

如图所示,当这个搜索按钮一显示出来,我马上就去点它。

不管页面的其他LOGO、图片有没有加载出来,只要我的想要的搜索按钮出来了,我就马上去点击它。

这个题目是做自动化测试非常重要也非常基础的问题,所以我把这个问题排在了第一。这个问题以后被问到,就难不到你了。

2.之前项目做过自动化测试吗?如何推进的?

要想工资想超过15K,这个问题是必须回答的

别看这个问题很简单?其实仔细分析下来有点难度的。要是面试官问你有没有做过自动化测试,那么你肯定不能简单的说:额~我做过!

你需要告诉面试官,你如何自动化开展到推进。如何推进的非常重要,咱们不要片面的去回答,会或者不会。

 建议大家这样回答:我会,之前公司我们的项目接口方面,前端UI方面我是用selenium这个开源框架加上Python基础架构来实现自动化的。实现原理方面你可以用一些单元测试框架unittest去组织的测试用例,(或者用Pytest)数据驱动方面会需要用execl表去做一个数据驱动,然后用到一些关键字驱动。
最后你要简述做自动化遇过到哪一些问题,大家一定要提前准备好,这个即使你不说,也是必问的!然后讲明这些问题你是如何解决的。

这里给大家分享一个公式,方便大家更好的回复这些提问。

问到你对公司项目产生了什么样的价值的时候你可以这样回答

像我去面试的时候,我就会说成为我们公司的一个固定资产。
不管是开发、产品、运营,都会用到咱们的这个自动化脚本。可以帮我们线上监控,帮我们自动化回归,帮我们造数据,帮我们跑数据,提高了迭代效率,释放了很多人力。
很多做软件测试的同行,没有用过确实感受不到。我之前开始做自动化的时候,在一个人工智能的公司。产品上线之前,CTO只问我一句话,能不能上?因为我这边有很多自动化项目已经不停的在回归,然后功能测试也测了。所以功能+自动化结合就能很自信的上线。它校验出了很多隐藏的BUG,很多因为代码提交、新功能的开发产品的BUG。

3. 谈谈你对自动化分层思想的理解?

其实这句话,经常会被写到一些大型招聘网上去。所以你不仅要会自动化而且还要会自动化分层思想,做自动化和做功能测试一样,那么它分为哪些东西呢?

我们要了解到自动化用例它有一个业务层/业务逻辑,那么登录的业务逻辑是什么?

输入用户名-输入密码-点击登录按钮

分层:业务逻辑

关键字驱动

业务层的关键字,比如说你登录,那么你要去做其他的用例是不是会用到登录这个关键字。这个业务也封装成一个关键字,你其他的一个用例是不是可以用到它了?那接口,接口之间不是有很多的关联对吧,如果你把下单这些接口弄在一起,退货发货这些弄在一起,这就是一个业务层的关键字。
关键字驱动不仅有业务层,还有逻辑层。比如说你需要用到很多的公共方法,比如说随机数、随机号码、数据库等等。大家都能用到的,就都封装成一个关键字。

二次封装:

有时候我们需要根据需求去二次封装。
其实关键字驱动不仅仅这三层。还有很多东西要分层,比如很多驱动、第三方的库、日志、页面、图片、报告等等……

PS: 由于篇幅的限制,仅展示了部分内容,除了面试题,我还整理了【模拟面试】和实战教程。需要完整资源的,可以点击下方卡片免费获取↓↓↓

4、你如何从Selenium连接到数据库?

Selenium是一个Web UI自动化工具。不提供任何API来建立数据库连接。这其实取决于你使用Selenium进行自动化的编程语言。在下面的例子中,我们假设正在使用Java。

一个Connection对象表示与数据库的连接。当我们使用连接方法连接到一个数据库时,我们就创建了一个连接对象,它代表了与数据库的连接。单个数据库可能有一个连接或多个连接,还可能有多个连接到不同的数据库上。

我们可以使用Connection对象来做以下事情:

· 创建用于执行SQL语句的Statement,PreparedStatement和CallableStatement对象。
· 可以帮助我们提交或回滚一个JDBC事务。
· 如果你想知道连接到的数据库或数据源信息,Connection对象通过使用DatabaseMetaData就可以收集有关数据库或数据源的信息。
· 可以帮助我们关闭数据源。Connection.isClosed() 方法只有在调用了Connection.close()时才返回true 。此方法用于关闭所有连接。

所以我们需要通过使用DriverManager.getConnection()方法,建立与数据库的连接。这个方法接受一个包含URL的字符串。DriverManager类尝试查找可以连接到由字符串URL表示的数据库的驱动程序。每当调用getConnection()方法时,DriverManager类都会检查可以连接到URL中指定的数据库的所有已注册的Driver类的列表。

句法:

String url = "jdbc: odbc: makeConnection";
Connection con = DriverManager.getConnection(url, "userID", "password");

5、自动化用例在什么环境下运行、如何批量运行?

能对公司真正的产生效益的自动化肯定是成千上万级别的用例。如果没有达到这个级别,收益一定是很小的。既然是机器在运行的,为什么不去覆盖全面呢?

在这里给大家推荐一个docker容器技术+jenkins定时构建+git

你的代码放在git上面然后用jenkins去关联定时构建,docker保证你的自动化干净的环境(虚拟机的进阶版)运行还可以分布式运行。

git(版本管理)可以关注一下我创建的软件测试精英群,里面有2021当下最新主流的软件测试技术分享。还有更多软件测试实战视频详解,都是现在主流火爆的技术。

6、系统的性能决定的要素?跟并发用户数的关系?

由TPS决定,跟并发用户数没有很多关系。

系统的最大TPS是一定的(在一个范围之内),但并发用户数不一定的,可以进行调整,建议在性能测试的时候,不要设置过长的思考时间,可以以最坏的情况下对服务器施压。

7.你会封装自动化测试框架吗?

这个问得最多,甚至有很多公司直接卸载招聘要求中

当然可以,自动化框架主要的核心框架就是分层+PO模式:分别为:基础封装层BasePage,PO页面对象层,TestCase测试用例层。然后再加上日志处理模块,ini配置文件读取模块,unittest+ddt数据驱动模块,jenkins持续集成模式组成。

8.你们测试团队如何提升自己的测试技能?

更多是靠技术讨论和学习交流,除了我们公司内部群之外,我们还会有相关的技术交流群,可以和跟很多同行一起学习,完善自己的技能树。IT行业技术更新迭代本来就很快,所以更需要保持学习的心态。

......

由于篇幅的限制,仅展示了部分内容,除了面试题,我还整理了面试的相关注意事项:

1.无论是职场新人还是职场老人在面试之前首先需要做的是了解所面试的公司,从它成立的时间,有多大规模,产品线,大致的员工数量,slogn等等;

2.明白自己所应聘岗位的岗位职责,自己的能力匹配度,以及查看多公司的同岗位的技能要求及其薪资待遇,做到心中有数,同事也可以看自己与市面上的同岗位竞争者的距离是多大,这样在后期面试和谈薪期间可以为自己争取最大利益;

3.根据不同的公司,适当调整自己的简历,突出自己的优势,不要一成不变,且面试时一定要自信呐;

今天主要是分享面试题资源,后续我还会录制更多的自动化测试的实战教程视频,如果觉得被帮助到的话,大家可以关注和点赞一下~

 

猜你喜欢

转载自blog.csdn.net/2201_76100073/article/details/130011316