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

news2024/11/13 13:47:56

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领取哈

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

kubectl

目录 一、陈述式资源管理方法 二、基本信息查看 2.1 基本信息查看格式 2.2 查看master节点组件状态 2.3 查看命名空间 2.4 创建/查看命名空间 2.5 删除(重启)命名空间/pod 2.6 查看资源的详细信息 2.7 创建副本控制器来启动Pod 2.8 查看指定命…

Linux-0.11 文件系统buffer.c详解

Linux-0.11 文件系统buffer.c详解 buffer_init void buffer_init(long buffer_end)该函数的作用主要是初始化磁盘的高速缓冲区。 刚开始使用h指针指向了start_buffer的位置。 struct buffer_head * h start_buffer; void * b; int i;start_buffer定义为end的位置&#xff…

数据结构与算法基础(王卓)(11):栈的定义及其基础操作(顺序表和链表的初始化、求长度,是否为空,清空和销毁、出栈、压栈)

栈的定义: stack:一堆,一摞;堆;垛; 顺序栈和链栈的设计参考: 数据结构与算法基础(王卓)(7):小结:关于链表和线性表的定义及操作_宇 -Yu的博客-C…

【免费教程】 SWMM在城市水环境治理中的应用及案例分析

SWMMSWMM(storm water management model,暴雨洪水管理模型)是一个动态的降水-径流模拟模型,主要用于模拟城市某一单一降水事件或长期的水量和水质模拟。EPA(Environmental Protection Agency,环境保护署&am…

QTCreator 设置编码格式

显示文件编码格式 选择“工具>首选项>文本编辑器>显示>显示文件编码” 全局设置 选择“工具>首选项>文本编辑器>行为>文件编码” 将文件编码设置为utf-8,UTF-8 BOM 选择存在则保留,最后选择apply。 打开项目设置 选择“项目&…

解析HTTP/2如何提升网络速度

我们知道HTTP/1.1 为网络效率做了大量的优化,最核心的有如下三种方式: 增加了持久连接;浏览器为每个域名最多同时维护 6 个 TCP 持久连接;使用 CDN 的实现域名分片机制。 虽然 HTTP/1.1 采取了很多优化资源加载速度的策略&#x…

[学习笔记]SQL server完全备份指南

方式一,使用SQL Server Management Studio 准备工作 连接目标数据库服务器 在目标数据库上右键->属性,将数据库的恢复模式设置为“简单”,兼容级别设置为“SQL Server 2016(130)” [可选]将表中将无用的业务数据删除,以减…

Java EE|TCP/IP协议栈之传输层UDP协议详解

文章目录一、对UDP协议的感性认识简介主要特点二、UDP的报文结构协议端格式概览报文结构详解源端口目的端口16位UDP报文长度16位校验和参考一、对UDP协议的感性认识 简介 UDP,是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI…

Leetcode力扣秋招刷题路-0081

从0开始的秋招刷题路,记录下所刷每道题的题解,帮助自己回顾总结 81. 搜索旋转排序数组 II 已知存在一个按非降序排列的整数数组 nums ,数组中的值不必互不相同。 在传递给函数之前,nums 在预先未知的某个下标 k(0 &…

公安局靶场建设规划设计

随着我国国家安全形势的变化,公安工作也面临着越来越严峻的挑战。为了提高公安干警的专业技能和反恐能力,建设一座现代化的靶场已成为公安局的迫切需求。本文将介绍公安局靶场建设的重要性,靶场的规划与设计以及建设过程中需要注意的事项。 一…

Pyspark基础入门4_RDD转换算子

Pyspark 注:大家觉得博客好的话,别忘了点赞收藏呀,本人每周都会更新关于人工智能和大数据相关的内容,内容多为原创,Python Java Scala SQL 代码,CV NLP 推荐系统等,Spark Flink Kafka Hbase Hi…

Flex写法系列-Flex布局之基本语法

以前的传统布局,依赖盒装模型。即 display position float 属性。但是对于比较特殊的布局就不太容易实现,例如:垂直居中。下面主要介绍flex的基本语法,后续还有二期介绍Flex的写法。一、什么是Flex布局?Flex布局个人…

Vuex的创建和简单使用

Vuex 1.简介 1.1简介 1.框框里面才是Vuex state:状态数据action:处理异步mutations:处理同步,视图可以同步进行渲染1.2项目创建 1.vue create 名称 2.运行后 3.下载vuex。采用的是基于vue2的版本。 npm install vuex3 --save 4.vu…

Frequency Domain Model Augmentation for Adversarial Attack

原文:[2207.05382] Frequency Domain Model Augmentation for Adversarial Attack (arxiv.org)代码:https://github.com/yuyang-long/SSA.黑盒攻击替代模型与受攻击模型之间的差距通常较大,表现为攻击性能脆弱。基于同时攻击不同模型可以提高…

C++8:模拟实现list

目录 最基础的链表结构以及迭代器实现 链表节点结构 构造函数 push_back list的迭代器 增删查改功能实现 insert erase pop_front pop_back push_front clear 默认成员函数 析构函数 拷贝构造函数 赋值操作符重载 list的完善 const迭代器 赋值操作符重…

使用BP神经网络诊断恶性乳腺癌(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 1.1.算法简介 BP(Back Propagation)网络是1986年由Rumelhart和McCelland为首的科学家小组提出&#xf…

c语言编程规范第三部分

3、头文件应向稳定的方向包含 头文件的包含关系是一种依赖,一般来说,应当让不稳定的模块依赖稳定的模块,从而当不稳定的模块发生变化时,不会影响(编译)稳定的模块。就我们的产品来说,依赖的方向…

数据复制 软件 SnapMirror:统一复制,更快恢复

数据复制 软件 SnapMirror:统一复制,更快恢复 预测未知领域是一项棘手的工作。让 SnapMirror 软件来处理则轻松得多。 通过数据的高可用性和快速数据复制,可即时访问业务关键型数据。放松一下,它会让你满意的。 为什么用 SnapMi…

3D目标检测(一)—— 基于Point-Based方法的PointNet系列

3D目标检测(一)—— PointNet,PointNet,PointNeXt, PointMLP 目录 3D目标检测(一)—— PointNet,PointNet,PointNeXt, PointMLP 前言 零、网络使用算法 …

AQS与Synchronized异曲同工的加锁流程

在并发多线程的情况下,为了保证数据安全性,一般我们会对数据进行加锁,通常使用Synchronized或者ReentrantLock同步锁。Synchronized是基于JVM实现,而ReentrantLock是基于Java代码层面实现的,底层是继承的AQS。 AQS全称…