当前位置: 首页 > news >正文

速看!!!一套能直接拿捏大厂面试官的软件测试面试宝典

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&#xff0c…...

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年&#xff0c;中国车载毫米波雷达市场战火明显升级。 一方面&#xff0c;愈演愈烈的份额抢夺战不仅仅存在于几大传统巨头之间&#xff0c;也快速转移到与国产供应商之间&#xff1b;随着部分外资巨头的本土化战略深入落地&#xff0c;同时对国产供应商造成了压力。 …...

26岁曾月薪15K,现已失业3个月,我依然没有拿到offer......

我做测试5年&#xff0c;一线城市薪水拿到15K&#xff0c;中间还修了一个专升本&#xff0c;这个年限不说资深肯定也是配得上经验丰富的。今年行情不好人尽皆知&#xff0c;但我还是对我的薪水不是很满意&#xff0c;于是打算出去面试&#xff0c;希望可以搏一个高薪。 但真到面…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

Leetcode 3576. Transform Array to All Equal Elements

Leetcode 3576. Transform Array to All Equal Elements 1. 解题思路2. 代码实现 题目链接&#xff1a;3576. Transform Array to All Equal Elements 1. 解题思路 这一题思路上就是分别考察一下是否能将其转化为全1或者全-1数组即可。 至于每一种情况是否可以达到&#xf…...

golang循环变量捕获问题​​

在 Go 语言中&#xff0c;当在循环中启动协程&#xff08;goroutine&#xff09;时&#xff0c;如果在协程闭包中直接引用循环变量&#xff0c;可能会遇到一个常见的陷阱 - ​​循环变量捕获问题​​。让我详细解释一下&#xff1a; 问题背景 看这个代码片段&#xff1a; fo…...

【Java学习笔记】Arrays类

Arrays 类 1. 导入包&#xff1a;import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序&#xff08;自然排序和定制排序&#xff09;Arrays.binarySearch()通过二分搜索法进行查找&#xff08;前提&#xff1a;数组是…...

Linux相关概念和易错知识点(42)(TCP的连接管理、可靠性、面临复杂网络的处理)

目录 1.TCP的连接管理机制&#xff08;1&#xff09;三次握手①握手过程②对握手过程的理解 &#xff08;2&#xff09;四次挥手&#xff08;3&#xff09;握手和挥手的触发&#xff08;4&#xff09;状态切换①挥手过程中状态的切换②握手过程中状态的切换 2.TCP的可靠性&…...

ESP32读取DHT11温湿度数据

芯片&#xff1a;ESP32 环境&#xff1a;Arduino 一、安装DHT11传感器库 红框的库&#xff0c;别安装错了 二、代码 注意&#xff0c;DATA口要连接在D15上 #include "DHT.h" // 包含DHT库#define DHTPIN 15 // 定义DHT11数据引脚连接到ESP32的GPIO15 #define D…...

【HTML-16】深入理解HTML中的块元素与行内元素

HTML元素根据其显示特性可以分为两大类&#xff1a;块元素(Block-level Elements)和行内元素(Inline Elements)。理解这两者的区别对于构建良好的网页布局至关重要。本文将全面解析这两种元素的特性、区别以及实际应用场景。 1. 块元素(Block-level Elements) 1.1 基本特性 …...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

蓝桥杯 冶炼金属

原题目链接 &#x1f527; 冶炼金属转换率推测题解 &#x1f4dc; 原题描述 小蓝有一个神奇的炉子用于将普通金属 O O O 冶炼成为一种特殊金属 X X X。这个炉子有一个属性叫转换率 V V V&#xff0c;是一个正整数&#xff0c;表示每 V V V 个普通金属 O O O 可以冶炼出 …...

elementUI点击浏览table所选行数据查看文档

项目场景&#xff1a; table按照要求特定的数据变成按钮可以点击 解决方案&#xff1a; <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...