速看!!!一套能直接拿捏大厂面试官的软件测试面试宝典
3.5.1、说说你们是怎么做自动化测试的☆☆☆☆☆
我们的自动化测试主要是web UI的自动化测试,主要用于冒烟测试和主要功能的回归测试或者主流浏览器的兼容性测试,作为手工测试的一种补充,提高测试效率,减少一些重复性的测试工作。
1、自动化测试通常是在UI页面完成和稳定之后开始进行的,依据功能测试用例编写自动化测试用例,主要是加入一些元素的定位说明和验证功能是否完成的操作,然后依据自动化测试用例,使用python语言转化为自动化测试脚本,驱动火狐或者谷歌等浏览器,用Selenium提供的API进行页面元素的定位,并对元素进行操作,比如点击,输入内容,下拉框选择等来模拟手工的操作。
2、我们主要使用python+Selenium+unittest来搭建我们自动化测试框架, 主要使用python调用Selenium提供API编写脚本来驱动浏览器执行指定的操作,unittest主要是方便管理并执行多个测试用例,获取最终的测试结果报告。
3、脚本编写调试完成之后,我们在每次开发提交测试版本后用它来进行冒烟测试,也会用它来做主要功能的回归测试。
4、当时的项目自动化测试还处于起步阶段,后续为了更方便的维护会对自动化的脚本进行重构和封装,会采用PO(PageObject)设计模式,对脚本进行分层,也会与持续集成工具Jenkins相结合来自动执行脚本,并生成报告,将测试结果通过邮件的方式发送给相关的人员。
3.5.2、你们为什么要做自动化?☆☆☆☆☆
自动化测试可以提高测试效率,可以减少回归测试中重复的工作,可以比较精准的获得测试结果(脚本的执行不依赖于人的主观情绪)
3.5.3、在项目中你们用自动化来做些什么☆☆☆☆☆
我们主要用自动化测试来进行版本提交时候的冒烟测试和功能回归测试,以正向功能为主,用来检验我们的软件对需求的符合度,或者用脚本来启动不同的浏览器测试系统的兼容性。
如果时间允许,我们也会编写脚本来测试反向功能,发现问题提交缺陷。
3.5.4、Selenium的定位方式都有哪些,你常用的是哪些?☆☆☆☆☆
Selenium的八种定位方式:ID,name,className,LinkText,partialLinkText,xpath,CSS,tagName
我们经常用的有ID,name,className,xpath等
我们选择定位方式的原则是,哪种简单,能够准确定位就会选择哪一种。
Xpath我们用的也比较多,因为这种定位方式定位比较准确,特别对于一些元素没有ID,name等属性的时候,但我们也不会全都选择xpath方式,因为这种方式可读性比较差,如果路径比较深,执行效率会低一些。
3.5.5、SeleniumWebdriver的工作原理☆☆☆☆☆
我们使用python调用seleniumAPI来编写脚本,运行脚本后,通过浏览器的驱动启动浏览器并绑定端口,运行脚本向浏览器发送请求,浏览器接收到请求后进行解析并执行,执行后将执行结果反馈给我们的客户端,客户端再决定是否继续执行。
3.5.6、你在自动化测试过程中遇到的问题☆☆☆☆☆
经常遇到的是元素定位不到的问题,因为网络慢,电脑性能差,元素没有加载出来,这种情况我们一般是这么处理的,更换定位方式或者增加等待时间,如果脚本代码没有错误的情况下,增加等待时间一般都能解决。
还会遇到浏览器不能正常启动的问题,这个问题的原因一般是实例化浏览器不正确或者是浏览器的驱动和浏览器的版本不匹配。
其他根据自己学习过程中遇到的问题来回答。
3.5.7、如何定位动态元素?如何定位隐藏元素?☆☆☆☆☆
有些元素的属性是动态的,每次加载页面都会生成新的属性信息。
如果是动态元素,我们一般会选择xpath或者css的方式来定位。
如果隐藏的元素,我们使用Selenium提供的API来执行一段js代码,将隐藏的元素属性暂时修改为显示状态,然后再进行定位和操作。
3.5.8、自动化测试用例是怎么来的☆☆☆☆☆
我们的自动化测试用例是从功能测试当中抽取来的,一般会抽取冒烟测试的用例,正向功能流程的用例来作为自动化测试用例,然后转化为脚本,主要用于冒烟测试和回归测试使用。
3.5.9、你们的自动化框架是如何搭建的☆☆☆
我们使用开源的Selenium工具,unittest单元测试框架管理case,生成测试报告,持续集成工具用的jenkins。
我们使用的Python+Selenium+Unittest+Jenkins
Unittest主要用来管理测试用例的执行,生成测试报告等
Jenkins用来进行持续集成测试管理,生成测试报告,自动发送邮件给相关人员。
3.5.10、如何判断你的自动化测试用例是否通过☆☆☆☆☆
我们会使用unittest断言的方式来进行结果判断
设计自动化测试用例的时候我们有预期结果,我们可以根据我们预期结果来进行用例是否通过的判断。
比如我们进行登录的自动化测试,执行登录的操作后,进入系统我们获取登录成功后界面上会显示的文本信息,用代码来判断获取的信息是否和我们预期的信息一致。
3.5.11、为什么要使用unittest☆☆☆☆
a、帮我们来组织和管理测试用例。
u b、通过框架提供的断言来判断我们的用例是否执行通过。
u c、可以通过套件等方式来执行测试用例
u d、支持数据驱动测试
u e、可以帮我们来输出html格式的测试报告
3.5.12、自动化测试的流程是什么☆☆☆☆☆
我们通过功能测试需求,编写功能测试用例,在功能测试用例提取冒烟测试和正向流程的测试用例来作为自动化测试用例,然后我们使用开源的web自动化测试工具Selenium,用python语言编写脚本,执行测试用例,输出报告,有问题会及时的提交开发人员解决。

将近几千道题+答案,太多了这里就展示了其中的一部分如果大家有需要的话可以点击文章末尾的小卡片备注000领取哈

相关文章:

速看!!!一套能直接拿捏大厂面试官的软件测试面试宝典
3.5.1、说说你们是怎么做自动化测试的☆☆☆☆☆我们的自动化测试主要是web UI的自动化测试,主要用于冒烟测试和主要功能的回归测试或者主流浏览器的兼容性测试,作为手工测试的一种补充,提高测试效率,减少一些重复性的测试工作。1…...

超级完整 的 Maven 讲解 以及私服搭建
第一章 Maven 简介 1.1、Maven 概述 Maven 是一款基于 Java 平台的项目管理和整合工具,它将项目的开发和管理过程抽象成一个项目对象模型(POM)。开发人员只需要做一些简单的配置,Maven 就可以自动完成项目的编译、测试、打包、发…...

数据结构之算法的时间复杂度和空间复杂度
本章重点: 1.算法效率 2.时间复杂度 3.空间复杂度 4. 常见时间复杂度以及复杂度oj练习 目录 1.算法效率 1.2算法的复杂度 2.时间复杂度 2.1 时间复杂度的概念 2.2 大O的渐进表示法 2.3常见时间复杂度计算举例 3.空间复杂度 4. 常见复杂度对比 5.复杂度…...

【微信小程序】使用页面跳转并携带多个特定参数
前言在我们项目的搭建时常常会用到页面跳转,在微信小程序中也支持多个跳转类型。如(wx.switchTab\wx.reLauch\wx.redirectTo\wx.navigateTo\wx.navigateBack)等等,每一个路由API都是有相对应的特定跳转功能,在这里我就不赘述了。微信开发者文…...

CVPR 2021 | Involution:超越convolution和self-attention的神经网络算子
CVPR 2021 | Involution:超越convolution和self-attention的神经网络算子 论文地址:https://arxiv.org/pdf/2103.06255v2.pdf 代码地址:https://github.com/d-li14/involution Involution卷积,文章描述说它比convolution更轻量更高效,形式上比self-attention更加简洁,可以…...

11 OpenCV图像识别之人脸识别
文章目录1 Eigenfaces1.1 建模流程1.2 示例代码2 Fisherfaces2.1 建模流程2.2 示例代码3 Local Binary Histogram3.1 建模流程3.2 示例代码OpenCV 提供了三种人脸识别方法:Eigenfaces Eigenfaces是一种基于PCA(Principal Component Analysis,…...

ssh设置:免密登入、修改默认端口、禁止root登入、限制错误登入次数
服务器: 客户端: 在下面不再说明服务器和客户端。 1.修改ssh默认端口 是在服务器中设置。 该设置涉及三部分:sshd配置文件修改/增加新端口、Selinux添加新端口、Firewall开放新端口。 vim /etc/ssh/sshd.config,找到#Port行&…...

【Fastdfs】| 入门连续剧——安装
作者:狮子也疯狂 专栏:《spring开发》 坚持做好每一步,幸运之神自然会降临在你的身上 目录一. 🦁 前言Ⅰ. 🐇 为什么要使用分布式文件系统?1.1 单机系统 vs 独立文件服务器1.2 分布式文件系统1.3 FastDFS引…...

【ESP32-S3】Pycharm 使用 microPython 教程(避坑)
一、下载Pycharm等操作 1.百度云下载链接 链接:https://pan.baidu.com/s/1tkbMzS5B_v-Cn4WQlTqS3Q?pwd0108 提取码:0108 2.安装 按照压缩包中的教程来,你懂的。 二、配置microPython环境 1.安装 microPython 插件 1.1 File > Sett…...

Allegro如何通过报表的方式检查单板上是否有假器件操作指导
Allegro如何通过报表的方式检查单板上是否有假器件操作指导 在做PCB设计的时候,输出生产文件之前,必须保证PCB上不能存在假器件,如下图,是不被允许的 当PCB单板比较大,如何通过报表的方式检查是否存在假器件,具体操作如下 点击Tools点击Reports...

清理bib文件(删除重复项,仅保留tex中引用的条目)
在写latex文件的过程中,经常会遇到添加了一堆文献的bibtex到bib文件中,有时候文章一长同一篇文献用不同的cite-key引用了多次,同时也会有一些文献最后并没被正文引用,这就需要对bib文件进行清理。 删除重复项 可以用JabRef 在J…...
Rust编程细节知识点拾遗
1.Rust中每一个引用都有生命周期,也就是引用保持有效的作用域。生命周期主要目标是避免悬垂引用,悬垂引用就是引用了已经释放的值。函数中,x的生命周期不能小于返回值得生命周期。当有x和y的时候,两者的生命周期是两个里面较小的那…...

【Linux】线程池
🎇Linux: 博客主页:一起去看日落吗分享博主的在Linux中学习到的知识和遇到的问题博主的能力有限,出现错误希望大家不吝赐教分享给大家一句我很喜欢的话: 看似不起波澜的日复一日,一定会在某一天让你看见坚持…...

运动版蓝牙耳机什么牌子的好、运动款蓝牙耳机推荐
何以解忧?唯有运动。事实已经无数次证明,运动不但可以让你更瘦身、更紧实,更重要的是精神状态也能焕然一新。不知道各位是不是也跟我一样,喜欢在运动的时候听着音乐。但是听音乐就需要有好的续航,否则运动一半没电了&a…...

MySQL中自带的数据库表相关介绍
mysql的自带数据库表主要有以下几个: (1)information_schema (2)performance_schema (3)mysql (4)sys (5)可能存在空数据库test 一、informa…...

【微信小程序】--注册小程序账号(一)
💌 所属专栏:【微信小程序开发教程】 😀 作 者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &#…...
Java多线程 - 利用Callable或CompletableFuture实现多线程异步任务执行
文章目录1. Callable接口源码2. Future接口的源码3. RunnableFuture接口和FutureTask实现类4. 利用线程池和Callable接口实现异步执行任务5. 利用CompleteFutable实现多线程异步任务执行1. Callable接口源码 FunctionalInterface public interface Callable<V> {// 这个…...

【ts + webpack】贪吃蛇小游戏
目录 一、项目搭建 1.1 初始化项目 二、项目界面布局 三、完成Food类 四、完成记分牌类 五、初步完成snake类 六、创建游戏控制器类 - 键盘事件 七、GameControl - 使蛇移动 八、蛇撞墙和吃食检测 一、项目搭建 1.1 初始化项目 1.使用init命令生成package.json文件 …...

传统巨头生“变”,中国毫米波雷达市场战火再升级
进入2023年,中国车载毫米波雷达市场战火明显升级。 一方面,愈演愈烈的份额抢夺战不仅仅存在于几大传统巨头之间,也快速转移到与国产供应商之间;随着部分外资巨头的本土化战略深入落地,同时对国产供应商造成了压力。 …...

26岁曾月薪15K,现已失业3个月,我依然没有拿到offer......
我做测试5年,一线城市薪水拿到15K,中间还修了一个专升本,这个年限不说资深肯定也是配得上经验丰富的。今年行情不好人尽皆知,但我还是对我的薪水不是很满意,于是打算出去面试,希望可以搏一个高薪。 但真到面…...
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以?
Golang 面试经典题:map 的 key 可以是什么类型?哪些不可以? 在 Golang 的面试中,map 类型的使用是一个常见的考点,其中对 key 类型的合法性 是一道常被提及的基础却很容易被忽视的问题。本文将带你深入理解 Golang 中…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...

ServerTrust 并非唯一
NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
【RockeMQ】第2节|RocketMQ快速实战以及核⼼概念详解(二)
升级Dledger高可用集群 一、主从架构的不足与Dledger的定位 主从架构缺陷 数据备份依赖Slave节点,但无自动故障转移能力,Master宕机后需人工切换,期间消息可能无法读取。Slave仅存储数据,无法主动升级为Master响应请求ÿ…...

论文笔记——相干体技术在裂缝预测中的应用研究
目录 相关地震知识补充地震数据的认识地震几何属性 相干体算法定义基本原理第一代相干体技术:基于互相关的相干体技术(Correlation)第二代相干体技术:基于相似的相干体技术(Semblance)基于多道相似的相干体…...
解决:Android studio 编译后报错\app\src\main\cpp\CMakeLists.txt‘ to exist
现象: android studio报错: [CXX1409] D:\GitLab\xxxxx\app.cxx\Debug\3f3w4y1i\arm64-v8a\android_gradle_build.json : expected buildFiles file ‘D:\GitLab\xxxxx\app\src\main\cpp\CMakeLists.txt’ to exist 解决: 不要动CMakeLists.…...

Chromium 136 编译指南 Windows篇:depot_tools 配置与源码获取(二)
引言 工欲善其事,必先利其器。在完成了 Visual Studio 2022 和 Windows SDK 的安装后,我们即将接触到 Chromium 开发生态中最核心的工具——depot_tools。这个由 Google 精心打造的工具集,就像是连接开发者与 Chromium 庞大代码库的智能桥梁…...

TSN交换机正在重构工业网络,PROFINET和EtherCAT会被取代吗?
在工业自动化持续演进的今天,通信网络的角色正变得愈发关键。 2025年6月6日,为期三天的华南国际工业博览会在深圳国际会展中心(宝安)圆满落幕。作为国内工业通信领域的技术型企业,光路科技(Fiberroad&…...