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

每年的招聘旺季在“金三银四”和“金九银十”这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.根据不同的公司,适当调整自己的简历,突出自己的优势,不要一成不变,且面试时一定要自信呐;

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

 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/9396.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python解题 - CSDN周赛第43期

感觉周赛越来越无趣了,基本都是考过的题目。上期周赛也是,4道题都曾考过,问哥也都写过题解,奖品也不吸引人,实在没什么好写了。 回想前段时间用力过猛,刷了C站大部分OJ题,以致于现在看到题目就直…

Elasticsearch:索引状态是红色还是黄色?为什么?

在我之前文章 “Elasticsearch:如何调试集群状态 - 定位错误信息” 中,我有详细介绍如何调试集群状态。在今天的文章中,我将详细介绍如何故障排除和修复索引状态。 Elasticsearch 是一个伟大而强大的系统,特别是创建一个可扩展性极…

MySQL函数、视图、存储过程及触发器

前言 MySQL在我们工作中都会用到,那么我们最常接触的就是增删改查,而对于增删改查来说,我们更多的是查询。但是面试中,面试官又不会问你什么查询是怎么写的,都是问一些索引啊,事务啊, 底层结构…

Hbase 介绍

Hbase 简介 Hbase 是一个开源的非关系型的分布式数据库,运用于HDFS文件系统之上,可以容错地存储海量稀疏的数据。Hbase是一个高可靠、高性能、面向列、可伸缩、实时读写的分布式数据库,主要用来存储非结构化和半结构化的松散数据 。 Hbase的…

ChatGPT中文在线官网-如何与chat GPT对话

怎么下载ChatGPT中文版 ChatGPT是一种基于Transformer架构的自然语言处理技术,其中包含了多个预训练的中文语言模型。这些中文ChatGPT模型大多数发布在Github上,可以通过Github的源码库来下载并使用,包括以下几种方式: 下载预训练…

高并发写场景:库存扣减

在设计商品的库存扣减逻辑时&#xff0c;可能一开始想到的(伪)代码是&#xff1a; <?php /*** 商品库存扣减** param int $skuId 商品ID* param int $num 库存扣减数量** return bool 扣减成功返回true&#xff0c;失败返回false*/ function stock_decr($skuId, $num) {…

Go是一门面向对象编程语言吗

本文首发自「慕课网」&#xff0c;想了解更多IT干货内容&#xff0c;程序员圈内热闻&#xff0c;欢迎关注"慕课网"&#xff01; 作者&#xff1a;tonybai|慕课网讲师 Go语言已经开源13年了&#xff0c;在近期TIOBE发布的2023年3月份的编程语言排行榜中&#xff0c;…

【hello Linux】Linux基本指令(下)

目录 1. more 指令&#xff1a;分批查看文件 1.1 more -n 文件名&#xff1a;查看文件前 n 行 1.2 more 文件名&#xff1a;屏幕输满 补充指令&#xff1a; 2. less 指令 2.1 less -N 文件名 2.2 /字符串&#xff1a;向下搜索“字符串”的功能 3. head 指令 3.1 head 文件名 3…

4.Java逻辑控制语句

Java逻辑控制语句 在实际生活中&#xff0c;我们的生活不是一成不变的&#xff0c;很多时候需要我们去选择&#xff0c;大到人生的十字路口&#xff0c;小到今天晚上吃什么&#xff0c;选择无处不在。小的选择决定了我们一件小事的走向&#xff0c;大的选择可能会改变我们人生…

基于多目标粒子群优化算法的计及光伏波动性的主动配电网有功无功协调优化(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

JavaScript -- 对象

1. 概念 对象是 JavaScript 数据类型的一种&#xff0c;可以理解为是一种无序的数据集合 2. 对象的使用 2.1 对象的声明 let 对象名 {} let 对象名 new Object() 2.2 属性和方法 数据描述性的信息称为属性&#xff0c;如人的姓名、身高、年龄、性别等&#xff0c;一般是…

蓝桥杯之贪心

蓝桥杯之贪心1055.股票买卖II104.货仓选址AcWing112.雷达设备1235.付账问题1239.乘积最大K是奇数&#xff0c;需要转化为K是偶数的情况&#xff0c;于是先取一个数&#xff0c;为了使得结果最大&#xff0c;取最大的数&#xff08;正数的话绝对值最大&#xff0c;负数的话(K是奇…

java版工程项目管理系统源码 Spring Cloud+Spring Boot+Mybatis+Vue+ElementUI+前后端分离 功能清单

ava版工程项目管理系统 Spring CloudSpring BootMybatisVueElementUI前后端分离 功能清单如下&#xff1a; 首页 工作台&#xff1a;待办工作、消息通知、预警信息&#xff0c;点击可进入相应的列表 项目进度图表&#xff1a;选择&#xff08;总体或单个&#xff09;项目显示1…

托福高频真词List12 // 附托福TPO阅读真题

目录 4.5单词 生词 熟词 真题 4.5单词 生词 irreversiblepermanentadj.无法挽回的&#xff0c;永久的manipulateskillfully usedhandlev.操控monumentalenormousgreat and significantadj.极大的&#x1f9f8;retardslowv.放缓&#x1f9f8;subsistencesurvivaln.生存 wit…

Redis应用问题及解决

目录 一.缓存穿透 1.1 问题描述 1.2 解决方案 二.缓存击穿 2.1 问题描述 2.2 解决方案 三.缓存雪崩 3.1 问题描述 3.2 解决方案 当数据库压力变大&#xff0c;导致服务访问数据库响应变慢&#xff0c;导致服务的压力变大&#xff0c;最终可能导致服务宕机。 一.缓存穿透 1.1 …

【数据结构】栈与队列经典oj题

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a;初阶数据结构 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对…

[Jenkins自动化] 实现远端linux自动化部署方式(上篇)

目录 本篇文章简介: 简单易上手, 轻松实现jenkins实现自动化部署(上) 1. 安装jenkins方式 -> 1.1 windows版本 --->1.1.1 直接安装 修改安装路径 设置端口号 9000为例 ---> 1.1.2 创建工作空间即可 (起名为pzy) -> 1.2 linux版本(暂无) -> 1.3 docker版…

chapter-4-数据库语句

以下课程来源于MOOC学习—原课程请见&#xff1a;数据库原理与应用 考研复习 概述 SQL发展 注&#xff1a;关键词是哪些功能&#xff0c;尤其第一个create alter drop是定义功能 1.SQL功能强大&#xff0c;实现了数据定义、数据操纵、数据控制等功能 2.SQL语言简洁&#xff…

redis基础总结-常用命令

redis常用指令3. 常用指令3.1 key 操作分析3.1.1 key应该设计哪些操作&#xff1f;3.1.2 key 基本操作3.1.3 key 扩展操作&#xff08;时效性控制&#xff09;3.1.4 key 扩展操作&#xff08;查询模式&#xff09;3.2 数据库指令3.2.1 key 的重复问题3.2.2 解决方案3.2.3 数据库…

Linux Shell 实现一键部署Redis6

redis 前言 Redis&#xff08;Remote Dictionary Server )&#xff0c;即远程字典服务&#xff0c;是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 redis 参考 redis下载RedisDesktopManagerd…
最新文章